expexp 导出表空间的表中数据丢失

相关文章推荐:
exp导出表结构
exp导出数据时,实现导出所有的表结构,并导出部分基础表的数据。请问怎么实现?
目前我的方法是,先导出所有的表结构,如:exp username/password@server file=db.dmp log=expdb.log rows=n,
然后在此基础上加上tables参数,导出基础表,最后在还原数据库的时候,按照同样的方式进行数据库还原,就可以得到一个干净的数据库了。
同是发现一个问题,空的数据库db.dmp本来很小,但在还原时,却占用了很大的表空间,几乎相当于源数据库所占用的表空间大小。
回复 (11) 浏览 (6364)
其他文章推荐
ITPUB官方微博:
2月8日上午消息,据北京市企业信用信息网公开数据显示,小米科技于日正式在工商局登记,成立小米支付技术有限公司,注册资本为5000万元。  据悉,小米支付技术有限公司为小米科技全资子公司。目前该公司已经开业,雷军任董事长及法人代表。总裁林斌、MIUI ......
回复 (1) 浏览 (2628)
本人研究这个OracleINV模组的form(INVTVPTX.fmb)已经有相当长一段时间了,其中的datablock:TRXS的query和DML都是baseview--&MTL_TRANSACTIONS_INTERFACE_V但是这种非保留索引键的view是不能直接update的,我们在界面保存的时候确实都有触发此block层的PRE-UPDATE和ON- ......
回复 (5) 浏览 (2171)
转载于:http://blog.csdn.net/tianlesoftware/article/details/7191916这里列几点注意事项:1.根据用户来进行迁移只需要把相关的表空间创建好就可以了。不需要创建用户,数据泵在导入的过程中会自动的创建相关的用户,及赋权,即使我们不知道用户的密码,数据泵也能把原 ......
回复 (2) 浏览 (455)
1、数据库10g2、客户是300台车,同一方案下,每台车对应一个表,666+车牌,比如、每台车一天的gps定位数据1M,存在对应车牌的表中4、所有表的结构完全一样,有个字段是收到gps数据的时间,格式是0:10:12用来备份选择时间。几个月下来单表已经300M了 ......
回复 (13) 浏览 (682)
新浪体育讯 “范佩西和鲁尼[微博]是莫耶斯最后的希望,但是为何他们却像陌生人一般踢球?”这是《每日邮报》在曼联[微博][微博]与富勒姆一战后提出的疑问。在这样一场苦战中,两位曼联的王牌在场上却几乎没有形成任何默契和互动,这也让球队的进攻效果大打折扣。  来 ......
回复 (2) 浏览 (10)
文章推荐:
盛拓传媒:
友情链接:
特别鸣谢:
北京皓辰网域网络信息技术有限公司. 版权所有
北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证:编号(京)字第1149号
ITPUB推荐文章解答你所有技术难题如何用EXP导出oracle数据库中没有记录的表?
[问题点数:40分,结帖人ksqqxq]
如何用EXP导出oracle数据库中没有记录的表?
[问题点数:40分,结帖人ksqqxq]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2010年9月 Oracle大版内专家分月排行榜第二
2011年4月 Oracle大版内专家分月排行榜第三2011年3月 Oracle大版内专家分月排行榜第三2011年1月 Oracle大版内专家分月排行榜第三
2011年3月 Oracle大版内专家分月排行榜第二2011年2月 Oracle大版内专家分月排行榜第二
2010年10月 Oracle大版内专家分月排行榜第三
2010年6月 Windows专区大版内专家分月排行榜第三2010年3月 Windows专区大版内专家分月排行榜第三
2013年4月 Oracle大版内专家分月排行榜第二2013年3月 Oracle大版内专家分月排行榜第二2010年5月 Oracle大版内专家分月排行榜第二
2013年1月 Oracle大版内专家分月排行榜第三2011年12月 Oracle大版内专家分月排行榜第三2010年8月 Oracle大版内专家分月排行榜第三2010年4月 Oracle大版内专家分月排行榜第三2010年3月 Oracle大版内专家分月排行榜第三
2011年3月 Oracle大版内专家分月排行榜第二2011年2月 Oracle大版内专家分月排行榜第二
2010年10月 Oracle大版内专家分月排行榜第三
2011年3月 Oracle大版内专家分月排行榜第二2011年2月 Oracle大版内专家分月排行榜第二
2010年10月 Oracle大版内专家分月排行榜第三
2010年6月 Windows专区大版内专家分月排行榜第三2010年3月 Windows专区大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。exp和imp,oracle9i导出导入数据,数据库备份,创建用户,删除用户 - 黑色头发 - ITeye技术网站
博客分类:
create user testkk identified by testkk
Grant dba to testkk
exp dzjc/dzjc@dzjc_2005 file=d:\kk.dmp owner=(kk)//语法是:exp 登入数据库名/登入数据库密码@服务名 file=文件存放路径 owner=导出用户名下的所有表结构和数据
imp dzjc/dzjc@dzjc_2005 file=d:\kk.dmp fromuser=’kk’ touser=’testkk’//语法是imp 登入数据库名/登入数据库密码@服务名 file=需要导入的文件 fromuser=需要导入的那个文件是属于哪个用户的 touser=要导入的用户名
imp dzjc/dzjc@dzjc_2005 full=y file=d:\kk.dmp fromuser=kk touser=testkk ignore=y
下面是删除用户的命令
如果直接执行exp/imp的话
执行步骤是:开始-运行-输入cmd
然后直接输入语句
exp dzjc/hldgajjzd@zhpt rows=n file=f:\dzjc.dmp owner=(dzjc)
这语句是指导出所有指定用户的表结构,不要数据
rows=n 表示不导数据
owner=(dzjc) 表示导出dzjc用户下的表结构
export导出选项
内容------------ -------------------------------------------------------------------------------USERID
运行导出命令的帐号的用户名/口令。BUFFEER
用来取数据行的缓冲区的大小。FILE
导出转储文件的名字COMPRESS
导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句,GRANTS
导出时否要导出数据库对象上的授权INDEXES
是否要导出表上的索引ROWS
是否应导出行。如它为'N',那么在导出文件中仅生成数据库对象的DDLCONSSTRAINTS 是否导出表旧的约定条件FULL
如设为'Y',那么将执行一个整个数据库导出操作OWNER
要导出的一系列数据库帐号,然后执行这些帐号的USER导出操作TABLES
要导出的一系列表;执行这些表的TABLE导出操作RECORDLENGTH 转储导出文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导出文件INCTYPE
正在执行的导出操作的类型(有效值有”COMPLETE“(缺省值),CUMULATIVE”和“IVCREMENTAL”)RECORD
在增量导出类型中的一个标记,标明是否将日志存储到数据字典中日志导出的表中PARFILE
要传递给导出的参数文件的名字。这个文件将包含所有参数的入口项ANALYZE
标明是否将移对象的统计信息写入导出转储文件中CONSISTENT
标明是否保留所有导出对象的读取一致复制。LOG
导出日志将要写入的文件的名字MLS
标明是否要导出MLS 标号MLS_LABEL_
规定了MLS标号的格式
--import导入选项
内容------------ -------------------------------------------------------------------------------USERID
运行导入命令的帐号的用户名/口令。BUFFEER
用来取数据行的缓冲区的大小。FILE
导入转储文件的名字SHOW
规定文件内容是否被显示,而不是被执行。IGNORE
标明在执行'CREATE'命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,应使用这个参数。FULL
如设为'Y',那么将执行一个整个数据库导入操作FROMUSER
在FULL=N的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取。TOUSER
一系列数据库帐号,导出转储文件扣的对象将要导入这些帐号。GRANTS
导入时否要导入数据库对象上的授权INDEXES
是否要导入表上的索引ROWS
是否应导入行。如它为'N',那么在导入文件中执行数据库对象的DDLFULL
如设为'Y',那么将执行一个整个数据库导出操作TABLES
要导入的一系列表RECORDLENGTH 转储导入文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导入文件INCTYPE
正在执行的导入操作的类型(有效值有”COMPLETE“(缺省值),CUMULATIVE”和“IVCREMENTAL”)PARFILE
要传递给导入的参数文件的名字。这个文件将包含所有参数的入口项ANALYZE
标明是否将移对象的统计信息写入导入转储文件中LOG
导入日志将要写入的文件的名字MLS
标明是否要导入MLS 标号
最后我想让数据可以追加,但最后我放弃了,实在是不会实现,但也不是没有收获,也查了不少资料,懂不了不少知识
heisetoufa
浏览: 5876557 次
来自: 北京
不错不错!
挺好 简单明了
太有用了,解决了我的很麻烦的一个问题!!!!
为什么下载不了,请楼主发我邮箱一份吧! @q ...
运行找不到config这个config是什么,也不测试行了再发 ...oracle导出/备份一个表中部分字段_百度知道
oracle导出/备份一个表中部分字段
例如,一个表a,b,c三个字段,备份/导出表时只导出a,b两个字段。 sql 实现 谢谢。
exp应该不支持按列导出,你可以写出sql语句,然后用plsqldeveloper等将结果导出到Excel等文件中
可以举一个例子吗
这种方式,在pl sql developer 上很简单的。 select a,b from tabxxx 然后全部显示数据,右键数据结果的左上角,copy to excel 即可。 如果用oracle sql developer可以选中表,右键导出,
在源目标窗口:
只选导出数据 , 不选导出ddl,选择 导出 xls
在指定数据窗口,选择要到处的列
然后就ok了。
其他类似问题
按默认排序
其他2条回答
用create table .. as ..的方式创建一个新表,然后把这个表导出就是了。当然只要数据的话,用sql dev更直接。
只要数据,用sql dev怎么实现。
我的建议是 新建一张新表
create table 用户.tablebak as select a, b from 用户.table 然后通过exp或者expdp导出新建的这张表希望能帮助你!
oracle的相关知识
等待您来回答
您可能关注的推广回答者:
下载知道APP
随时随地咨询
出门在外也不愁Oracle Exp/Imp 下令_Oracle10g 数据泵导出下令 expdp 使用总结_SQL效率之目录__脚本百事通
稍等,加载中……
^_^请注意,有可能下面的2篇文章才是您想要的内容:
Oracle Exp/Imp 下令
Oracle10g 数据泵导出下令 expdp 使用总结
SQL效率之目录
Oracle Exp/Imp 下令
Oracle Exp/Imp 命令
将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子  exp userid=system/manager owner=username1 file=expfile.dmp
imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp
ORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可以不需要外部存储设备。数据库逻辑备份方法ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。表模式备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_csd_yyyymmdd.dmp
log=exp_icdmain_csd_yyyymmdd.log
moninformation,icdmain.serviceinfo,icdmain.dealinfo
若直接备份到磁带设备,使用如下命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_csd_yyyymmdd.log
moninformation,icdmain.serviceinfo,icdmain.dealinfo
注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度
方面的考虑,尽量不要直接备份到磁带设备。
用户模式备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:
exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=exp_icdmain_yyyymmdd.dmp
log=exp_icdmain_yyyymmdd.log
若直接备份到磁带设备,使用如下命令:exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0
file=/dev/rmt0
log=exp_icdmain_yyyymmdd.log
注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。完全模式备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份命令:
exp icdmain/icd rows=y indexes=n compress=n buffer=65536
feedback=100000 volsize=0 full=y inctype=incremental
file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
log=exp_fulldb_yyyymmdd.log
注:关于增量备份必须满足下列条件:
只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。2. 用户必须有EXP_FULL_DATABASE的系统角色。
3. 话务量较小时方可采用数据库备份。
4. 如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。
业务数据库备份方法及周期用EXP进行备份前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本)。没有特殊说明,不允许在客户端执行备份命令。备份命令参照表模式下的备份命令。从磁盘文件备份到磁带如果首先备份到本地磁盘文件,则需要转储到磁带设备上。
1. 若需查看主机上配置的磁带设备,使用如下命令:lsdev -Cc tape显示的结果如下例所示:rmt0 Available 30-58-00-2,0 SCSI 4mm Tape Drivermt1 Defined  30-58-00-0,0 SCSI 4mm Tape Drive标明Available的设备是可用的磁带设备。2. 若需查看磁带存储的内容,使用如下命令:tar -tvf /dev/rmt0显示的结果如下例所示:-rw-r--r-- 300 400 8089600 Jan 11 14:33:57 2001 exp_icdmain_.dmp如果显示类似如下内容,则表示该磁带存储的备份数据是从数据库直接备份到磁带上,而非从本地磁盘转储到磁带的备份文件,因此操作系统无法识别。tar:
An error occurred while reading from the media.There is an input or output error.或tar:
A directory che - not equal to25626.3. 对于新磁带或无需保留现存数据的磁带,使用如下命令:tar -cvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp注:A. 该命令将无条件覆盖磁带上的现存数据。 
B. 文件名不允许包含路径信息,如:/backup/exp_icdmain_yyyymmdd.dmp。4. 对于需要保留现存数据的磁带,使用如下命令:tar -rvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp注:该命令将文件exp_icdmain_yyyymmdd.dmp追加到磁带的末端,不会覆盖现存的数据特别强调:如果备份时是从数据库直接备份到磁带上,则不可再向该磁带上追加复制任何其他文件,否则该备份数据失效。5. 若需将转储到磁带上的备份文件复制到本地硬盘,使用如下命令:
A. 将磁带上的全部文件复制到本地硬盘的当前目录
tar -xvf /dev/rmt0
B. 将磁带上的指定文件复制到本地硬盘的当前目录tar -xvf /dev/rmt0 exp_icdmain_yyyymmdd.dmp
备份时间安排由于备份时对系统I/O有较大影响,所以,建议在晚上11点以后进行备份工作。业务数据库Oracle版本的恢复恢复方案需根据备份方案确定。由于业务数据库采用表备份和用户备份相结合的方案,所以业务数据库的恢复需根据实际情况采用表恢复和用户恢复相结合的方案。恢复方案数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。表模式此方式将根据按照表模式备份的数据进行恢复。A. 恢复备份数据的全部内容若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_cs
d_yyyymmdd.dmp
log=imp_icdmain_csd_yyyymmdd.log
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
log=imp_icdmain_csd_yyyymmdd.log
B. 恢复备份数据中的指定表若从本地文件恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=exp_icdmain_cs
d_yyyymmdd.dmp
log=imp_icdmain_csd_yyyymmdd.log
tables=commoninformation,serviceinfo
若从磁带设备恢复,使用如下命令:
imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
commit=y buffer=65536 feedback=100000 ignore=n volsize=0
file=/dev/rmt0
log=imp_icdmain_csd_yyyymmdd.log
tables=commoninformation,serviceinfo
用户模式此方式将根据按照用户模式备份的数据进行恢复。A. 恢复备份数据的全部内容若从本地文件恢复,使用如下命令:imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=ncommit=y buffer=65536 feedback=100000 ignore=n volsize=0file=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.log若从磁带设备恢复,使用如下命令:imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=ncommit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0log=imp_icdmain_yyyymmdd.logB. 恢复备份数据中的指定表若从本地文件恢复,使用如下命令:imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=ncommit=y buffer=65536 feedback=100000 ignore=n volsize=0file=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.logtables=commoninformation,serviceinfo若从磁带设备恢复,使用如下命令:imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=ncommit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0log=imp_icdmain_yyyymmdd.logtables=commoninformation,serviceinfo完全模式如果备份方式为完全模式,采用下列恢复方法:若从本地文件恢复,使用如下命令:imp system/manager rows=y indexes=n commit=y buffer=65536feedback=100000 ignore=y volsize=0 full=yfile=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.log若从磁带设备恢复,使用如下命令:imp system/manager rows=y indexes=n commit=y buffer=65536feedback=100000 ignore=y volsize=0 full=yfile=/dev/rmt0log=imp_icdmain_yyyymmdd.log参数说明1. ignore参数Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore=y,Oracle不执行CREATE TABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。若ignore=n,Oracle不执行CREATE TABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。2. indexes参数在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。字符集转换对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);对于多字节字符集(例如ZHS16CGB231280),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。恢复方法业务数据库采用表恢复方案。在用IMP进行恢复前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本),然后执行下列命令:IMP ICDMAIN/ICD FILE=文件名 LOG=LOG文件名 ROWS=YCOMMIT=Y BUFFER=Y IGNORE=Y TABLES=表名注:要恢复的表名参照备份的表名  。恢复是在原表基础上累加数据  。没有特殊说明,不允许在客户端执行恢复命令
Oracle10g 数据泵导出下令 expdp 使用总结
Oracle10g 数据泵导出命令 expdp 使用总结1.1.1
其转储文件只能被存放在DIRECTORY
对象对应的OS
而不能直接指定转储文件所在的OS
因此使用EXPDP
必须首先建立DIRECTORY
并且需要为数据库用户授予使用DIRECTORY
首先得建DIRECTORY:
SQL& conn /as sysdba
SQL& CREATE OR REPLACE DIRECTORY dir_dump
AS '/u01/backup/';
SQL& GRANT read,write ON DIRECTORY dir_dump TO
整个schema
默认导出登陆账号的schema
$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott_full.dmp
LOGFILE=scott_full.log
其他账号登陆,
在参数中指定schemas
$ expdp system/oracle@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott_full.dmp
LOGFILE=scott_full.log
SCHEMAS=SCOTT
下的dept,emp
$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott.dmp
LOGFILE=scott.log
TABLES=DEPT,EMP
$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott.dmp
LOGFILE=scott.log
EXCLUDE=TABLE:"='EMP'"
下的存储过程
$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott.dmp
LOGFILE=scott.log
INCLUDE=PROCEDURE
$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott.dmp
LOGFILE=scott.log
INCLUDE=TABLE:"LIKE 'E%'"
可以改成NOT LIKE,
就导出不以E
$ expdp scott/tiger@db_esuite parfile=/orahome/expdp.par
DIRECTORY=dir_dump
DUMPFILE=scott.dmp
LOGFILE=scott.log
TABLES=EMP,DEPT
QUERY=EMP:"where empno&=8000"
QUERY=DEPT:"where deptno&=10 and deptno&=40"
处理这样带查询的多表导出,
如果多表之间有外健关联,
可能需要注意查询条件所筛选的数据是否符合这样的外健约束,
中有一栏位是 deptno,
是关联dept
如果"where empno&=8000"
中得出的deptno=50
的条件"where deptno&=10 and deptno&=40"
就不包含deptno=50
那么在导入的时候就会出现错误.
该选项用于在客户会话与已存在导出作用之间建立关联.
ATTACH=[schema_name.]job_name
schema_name
用于指定方案名,job_name
用于指定导出作业名.
如果使用ATTACH
在命令行除了连接字符串和ATTACH
不能指定任何其他选项,
expdp scott/tiger ATTACH=scott.export_job
2. CONTENT
该选项用于指定要导出的内容.
默认值为ALL.
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT
将导出对象定义及其所有数据;
为DATA_ONLY
只导出对象数据;
为METADATA_ONLY
只导出对象定义,
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY
3. DIRECTORY
指定转储文件和日志文件所在的目录.
DIRECTORY=directory_object
directory_object
用于指定目录对象名称.
目录对象是使用CREATE DIRECTORY
语句建立的对象,
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
CREATE DIRECTORY dump as 'd:\dump';
查询创建了那些子目录:
SELECT * FROM dba_
4. DUMPFILE
用于指定转储文件的名称,
默认名称为expdat.dmp.
DUMPFILE=[directory_object:]file_name[,….]
directory_object
用于指定目录对象名,file_name
用于指定转储文件名.
如果不指定directory_object,
导出工具会自动使用DIRECTORY
选项指定的目录对象,
expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
5. ESTIMATE
指定估算被导出表所占用磁盘空间的方法.
默认值是BLOCKS.
EXTIMATE={BLOCKS | STATISTICS}
设置为BLOCKS
会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,
设置为STATISTICS
根据最近统计值估算对象占用空间,
expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump
一般情况下,
当用默认值(blocks)
日志中估计的文件大小会比实际expdp
出来的文件大,
用statistics
时会跟实际大小差不多.
6. EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,
默认值为N.
EXTIMATE_ONLY={Y | N}
导出作用只估算对象所占用的磁盘空间,
而不会执行导出作业,
不仅估算对象所占用的磁盘空间,
还会执行导出操作,
expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
7. EXCLUDE
该选项用于指定执行操作时要排除的对象类型或相关对象.
EXCLUDE=object_type[:name_clause][,….]
object_type
用于指定要排除的对象类型,name_clause
用于指定要排除的具体对象.EXCLUDE
不能同时使用,
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
的帮助文件中,
可以看到存在EXCLUDE
这两个参数文档中介绍的命令格式存在问题,
正确用法是:
EXCLUDE=OBJECT_TYPE[:name_clause][,...]
INCLUDE=OBJECT_TYPE[:name_clause][,...]
&other_parameters& schema=scott exclude=sequence,table:"in('EMP','DEPT')"
&other_parameters& schema=scott include=function,package,procedure,table:"='EMP'"
有了这些还不够,
由于命令中包含了多个特殊字符,
在不同的操作系统下需要通过转义字符才能使上面的命令顺利执行,
EXCLUDE=TABLE:\"IN('BIGTALE')\"
8. FILESIZE
指定导出文件的最大尺寸,
表示文件尺寸没有限制).
9. FLASHBACK_SCN
指定导出特定SCN
时刻的表数据.
FLASHBACK_SCN=scn_value
用于标识SCN
值.FLASHBACK_SCN
和FLASHBACK_TIME
不能同时使用,
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523
10. FLASHBACK_TIME
指定导出特定时间点的表数据.
FLASHBACK_TIME="TO_TIMESTAMP(time_value)"
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME="TO_TIMESTAMP('25-08-:00','DD-MM-YYYY HH24:MI:SS')"
指定数据库模式导出,
FULL={Y | N}
标识执行数据库导出.
指定是否显示EXPDP
命令行选项的帮助信息,
会显示导出选项的帮助信息,
expdp help=y
13. INCLUDE
指定导出时要包含的对象类型及相关对象.
INCLUDE=object_type[:name_clause][,… ]
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=trigger
14. JOB_NAME
指定要导出作用的名称,
默认为SYS_XXX.
JOB_NAME=jobname_string
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp INCLUDE=trigger JOB_NAME=exp_trigger
后面想临时停止expdp
任务时可以按Ctrl+C
退出当前交互模式,
退出之后导出操作不会停止,
这不同于Oracle
以前的EXP.
以前的EXP,
如果退出交互式模式,
就会出错终止导出任务.
在 Oracle10g
是数据库内部定义的任务,
已经与客户端无关.
退出交互之后,
会进入export
的命令行模式,
此时支持 status
等查看命令:
Export& status
如果想停止改任务,
可以发出stop_job
Export& stop_job
如果有命令行提示: "
是否确实要停止此作业([Y]/N):"
或 "Are you sure you wish to stop this job ([yes]/no):",
回答应是yes
以后会退出当前的export
接下来可以通过命令行再次连接到这个任务:
expdp test/test@acf attach=expfull
通过start_job
命令重新启动导出:
Export& start_job
Export& status
15. LOGFILE
指定导出日志文件文件的名称,
默认名称为export.log.
LOGFILE=[directory_object:]file_name
directory_object
用于指定目录对象名称,file_name
用于指定导出日志文件名.
如果不指定directory_object.
导出作用会自动使用DIRECTORY
的相应选项值,
expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
16. NETWORK_LINK
指定数据库链名,
如果要将远程数据库对象导出到本地例程的转储文件中,
必须设置该选项.
中使用连接字符串和network_link
属于服务端工具,
属于客户端工具,expdp
生成的文件默认是存放在服务端的,
生成的文件是存放在客户端.
expdp username/password@connect_string //
对于使用这种格式来说,directory
使用源数据库创建的,
生成的文件存放在服务端。
如何将生成的文件放在目标数据库而不放在源数据库呢,
中使用network_link.
比如在本机expdp
远程服务器的数据库,
先在本机创建到服务端的dblink,
然后创建directory
然后expdp.
创建到服务端的dblink
conn aa/aacc
create database link link_name connect to bb identified by password using 'connect_string';
建立directory
conn / as sysdba
create or replace directory dir as 'directory';
grant read,write on
通过network_link
expdp aa/aacc directory=dir network_link=link_name …
17. NOLOGFILE
该选项用于指定禁止生成导出日志文件,
默认值为N.
18. PARALLEL
指定执行导出操作的并行进程个数,
19. PARFILE
指定导出参数文件的名称.
PARFILE=[directory_path:]file_name
用于指定过滤导出数据的where
QUERY=[schema.][table_name:]query_clause
用于指定方案名,table_name
用于指定表名,query_clause
用于指定条件限制子句.QUERY
选项不能 与 CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES
等选项同时使用,
expdp scott/tiger directory=dump dumpfiel=a.dmp Tables=emp query='WHERE deptno=20'
21. SCHEMAS
该方案用于指定执行方案模式导出,
默认为当前用户方案.
22. STATUS
指定显示导出作用进程的详细状态,
默认值为0.
23. TABLES
指定表模式导出.
TABLES=[schema_name.]table_name[:partition_name][,…]
schema_name
用于指定方案名,table_name
用于指定导出的表名,partition_name
用于指定要导出的分区名.
24. TABLESPACES
指定要导出表空间列表.
25. TRANSPORT_FULL_CHECK
该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,
导出作用会检查表空间直接的完整关联关系,
如果表所在表空间或其索引所在的表空间只有一个表空间被搬移,
将显示错误信息.
导出作用只检查单端依赖,
如果搬移索引所在表空间,
但未搬移表所在表空间,
将显示出错信息,
如果搬移表所在表空间,
未搬移索引所在表空间,
则不会显示错误信息.
26. TRANSPORT_TABLESPACES
指定执行表空间模式导出.
27. VERSION
指定被导出对象的数据库版本,
默认值为COMPATIBLE.
VERSION={COMPATIBLE | LATEST | version_string}
为COMPATIBLE
会根据初始化参数COMPATIBLE
生成对象元数据;
会根据数据库的实际版本生成对象元数据.version_string
用于指定数据库版本字符串.
SQL效率之目录
SQL效率之索引一、关于索引的知识要写出运行效率高的sql,需要对索引的机制有一定了解,下面对索引的基本知识做一介绍。1、索引的优点和局限索引可以提高查询的效率,但会降低dml操作的效率。所以建立索引时需要权衡。对于dml操作比较频繁的表,索引的个数不宜太多。2、什么样的列需要建索引?经常用于查询、排序和分组的列(即经常在where、order或group by子句中出现的列)。3、主键索引和复合索引对于一张表的主键,系统会自动为其建立索引。如果一张表的几列经常同时作为查询条件,可为其建立复合索引。4、建立索引的语句create
(empno);create
(empno, start_date);5、删除索引的语句drop
6、查询索引的语句法一:利用数据字典表一:all_indexes
查看一张表有哪些索引以及索引状态是否有效主要字段: index_name,
table_name,
status例如:select
index_name,
all_indexes
table_name=’STAFF_INFO’;
INDEX_NAME
---------------------
-----------
表二:all_ind_columns
查看一张表在哪些字段上建了索引
主要字段: table_name,
index_name,
column_name,
column_position例如: select
index_name,
column_name,
column_positionfrom
all_ind_columns
table_name=’AGENT’
INDEX_NAME
COLUMN_NAME
COLUMN_POSITON
---------------------
-----------------------
--------------------------
START_DATE
2由此可见,agent表中有一个复合索引(empno, start_date )法二:利用toad工具toad用户界面比sql*plus友好,并且功能强大。你可以在toad编辑器中键入表名,按F4,便可见到这张表的表结构以及所有索引列等基本信息。7、索引的一些特点1): 不同值较多的列上可建立检索,不同值少的列上则不要建。比如在雇员表的“性别”列上只有“男”与“女”两个不同值,因此就没必要建立索引。如果建立索引不但不会提高查询效率,反而会严重降低更新速度。2): 如果在索引列上加表达式,则索引不能正常使用
例如:b1,c1分别是表b,c的索引列
b1/30& 1000 ;
to_char(c1,’YYYYMMDD HH24:MI:SS’) = ‘:01:01’;以上都是不正确的写法3): where子句中如果使用in、or、like、!=,均会导致索引不能正常使用
例如:select
b1=40;4):使用复合索引进行查询时必须使用前置列
例如表a上有一个复合索引(c1,c2,c3),则c1为其前置列
如果用c1或c1+c2或c1+c2+c3为条件进行查询,则该复合索引可以发挥作用,反之,用c2或c3或c2+c3进行查询,则该索引不能起作用。
二. 书写sql注意事项:1、避免给sql语句中引用的索引列添加表达式:典型实例:b1,c1分别是表b,c的索引列:1)select
b1/30& 1000 ;2)select
where to_char(c1,’YYYYMMDD HH24:MI:SS’) = ‘:01:01’;替代方案:1) select
b1 & 30000;2) select * from c
where c1 = to_date(‘:01:01’, ‘YYYYMMDD HH24:MI:SS’);注:在lbs中有两个重要字段,pol_info中的undwrt_date和prem_info中的payment_date,这两个日期是带时分秒的,所以经常有同事用to_char 来查询某一时间段的数据。例如:select
to_char(undwrt_date,’YYYYMMDD’)=’’;
to_char(undwrt_date,’YYYYMM’)=’200203’;替代方案:select
undwrt_date&=to_date(’’,’YYYYMMDD’)
undwrt_date&to_date(’’,’YYYYMMDD’);select
payment_date&=to_date(’’,’YYYYMMDD’)
payment_date&to_date(’’,’YYYYMMDD’);2、避免在where子句中使用in、or、like、!=典型实例:a1是a表上的索引列:1) select
( a1 = ‘0’ and ...)
(a1 = ‘1’ and ...);2) select
(‘0’,’1’) ;替代方案:1)select
a1 = ‘0’
and ...unionselect
a1 = ‘1’
and ...2) select
a1 = ‘0’;
where a1 = ‘1’;
然后做一次加法运算;或者直接用存储过程来实现;小结:对字段使用了 ‘in,or,like’ 做条件、对字段使用了不等号 ‘!=’,均会使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引,或者使用union连结符代替。另一种方式是使用存储过程,它使SQL变得更加灵活和高效。3、建立适当的索引曾经接过开发的一个统计sql, select …
…运行效率非常慢,经查tablea数据量巨大,再查all_ind_columns,发现cola是tablea的一个复合索引中的一列,但不是前置列。象这种情况,就需要与开发商量,是否针对cola建一个索引。4、like和substr对于‘like’和‘substr’,其效率并没有多大分别。但是,当所搜索的值不存在时,使用‘like’的速度明显大于‘substr’。所以:select
substr(a1,1,4) = '5378'
可以用like替代select
‘5378%’;5、写where条件时,有索引字段的判断在前,其它字段的判断在后;如果where条件中用到复合索引,按照索引列在复合索引中出现的顺序来依次写where条件;6、使用多表连接时,在from子句中,将记录数少的表放在后面,可提高执行效率;7、避免使用not innot
in 是效率极低的写法,尽量使用minus或外连接加以替代典型实例:1) select col1 from tab1 where col1 not in (select col1 from tab2);2) select sum(col2) from tab1 where col1 not in (select col1 from tab2);替代方案select col1 from tab1 minus
select col1 from tab2; select
sum(a.col2)
tab1 a, tab2
bwhere a.col1=b.col2(+) and b.col18、表查询时,如果其中一个表的记录数量明显大于其他表,则可以先对此表进行查询后,再与其他小表进行表连接。典型实例:select
a.plan_code,
sum(a.tot_modal_prem),from
prem_info a,
dept_ref b,
plan_type cwhere
substr(a.deptno,1,7) = substr(b.deptno,1,7)and a.plan_code = c.plan_codegroup by b.dno,
a.plan_替代方案:select
a.plan_code,
a.tot_amountfrom
plan_code,
sum(tot_modal_prem)
tot_amountfrom
prem_infogroup
plan_code) adept_ref
b,plan_type
substr(a.deptno,1,7) = substr(b.deptno,1,7)
a.plan_code = c.plan_codegroup
a.plan_小结:由于prem_info表的记录数远远大于dept_ref表和plan_type表中的记录数,所以首先从prem_info表中查询需要的记录,此时记录数已经被大量缩小,然后再和其他两个表连接,速度会得到很大改善!9、查询数量较大时,使用表连接代替IN,EXISTS,NOT IN,NOT EXISTS等。典型实例:a、使用IN:select sum(col2) from tab1 where col1 in (select col1 from tab2);使用EXISTS::select sum(col2) from tab1 awhere exists ( select * from tab2 where col1=a.col1);b、使用NOT IN:select sum(col2) from tab1 where col1 not in (select col1 from tab2);使用NOT EXISTS:select sum(col2) from tab1 awhere not exists ( select * from tab2 where col1=a.col1);
替代方案:a、使用连接:select sum(a.col2) from tab1 a,tab2 b where a.col1=b.col2;b、使用外连接:select sum(a.col2) from tab1 a,tab2 bwhere a.col1=b.col2(+) and b.col1
UNION和UNION ALL的区别
UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录;而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。但是UNION ALL比UNION效率高,执行快。
如果您想提高自己的技术水平,欢迎加入本站官方1号QQ群:&&,&&2号QQ群:,在群里结识技术精英和交流技术^_^
本站联系邮箱:

我要回帖

更多关于 exp 导出表空间 的文章

 

随机推荐