expdp impdp使用总结
- 格式:doc
- 大小:203.00 KB
- 文档页数:19
Exp/Imp/Expdp/Impdp的使用寶成國際集團-中山電腦部2011-10-15內容簡介一.Exp/Imp的用法二.Expdp/Impdp的用法三.Exp/Imp 與Expdp/Impdp的比較一、Exp/Imp命令介紹1.Oracle資料導出導入Exp/Imp就相當於Oracle數據備份與還原。
exp命令可以把資料從遠端資料庫伺服器導出到本地的dmp檔,imp命令可以把dmp檔從本地導入到遠處的資料庫伺服器中。
2.迄今為止:導出/導入(exp/imp)工具集仍是跨多個平臺轉移資料所需勞動強度最小的首選實用工具,儘管人們常常抱怨它速度太慢.導入只是將每條記錄從dmp中讀出來,然後使用常見的Insert Into 命令將其插入到目標表中,因此導入可能會是個很慢的過程。
3.Exp: 高版本的DB不能導出低版本的DB資料.會報以下錯誤: (oracle10gdb exp oracle9idb Error)EXP-00056: ORACLE error 6550 encounteredORA-06550: line 1, column 41:PLS-00302: component 'SET_NO_OUTLINES' must be declaredORA-06550: line 1, column 15:4.Imp: 跨多個版本的dmp之間不能直接導入,需利用中間版本的DB導入.如Oracle8i導出的dmp file不能在Oracle10中直接導入,但可以在Oracle9i中利用網絡導入Oracle10g DB中.二、Exp/Imp使用實例1.數據導出(exp help=y)(1) 將資料庫TEST完全導出[EXP_FULL_DATABASE]exp system/manager@TEST file=d:\sys.dmp log=d:\sys.log full=y(2) 將資料庫中usera用戶與userb用戶的表導出exp system/manager@TEST file=d:\sys.dmp log=d:\sys.logowner=(usera,userb)(3) 將資料庫中的表table1、table2導出exp user/password@TEST file= d:\user.dmp log=d:\user.logtables=(table1, table2)(4)將資料庫中的表table1中的欄位filed1以‚00‛打頭的數據導出exp user/password@TEST file=d:\user.dmp log=d:\user.log tables=(table1) query=‚ where filed1 like ‘00%’‛(5)導出userA的架構不含Dataexp user/password@TEST file=d:\user.dmp log=d:\user.log rows=n(6)導出userA的架構,設定filesize為5Mexp user/password@TEST file=(d:\user-1.dmp,d:\user-2.dmp) log=d:\user.log filesize=5M2.數據導入(imp help=y)(1) 將資料庫中各owner導入[IMP_FULL_DATABASE]imp system/manager@TEST file=d:\sys.dmp log=d:\sys.log fromuser=ownera touser=ownera(2) 將資料庫中用戶A中的所有資料導入用戶B中imp userB/password@TEST file=d:\userA.dmp log=d:\in-userB.log fromuser=userA touser=userB(3) 導入時只導入架構和和data,不導入indeximp user/password@TEST file= d:\user.dmp log=d:\user.log indexes=n--產生index file的sql以便create indeximp user/password@TEST file= d:\user.dmp log=d:\index.log indexfile=user-index.sql(4) 往資料庫中的表table1中追加Dataimp user/password@TEST file=d:\user.dmp log=d:\inuser.log ignore=y(5) 使用commit=y及設定bufferimp gass/gasstest file=GASS2009.dmp log=in-GASS2009.log commit=y buffer=51200000(6) 使用使用INDEXES=Nimp user/password@TEST file=d:\user.dmp log=d:\inuser.log indexes=n rows=yimp user/password@TEST file=d:\user.dmp log=d:\inuser2.log indexes=y rows=n一、Expdp/Impdp命令介紹1.Oracle10g中的导出/导入(expdp/impdp)工具包為Oracle資料提供高速並行及大資料的遷移。
expdp和impdp语句expdp和impdp是Oracle数据库中用于数据泵的导出和导入工具。
它们允许用户将数据和元数据从一个Oracle数据库导出到一个dump文件,然后将该文件导入到另一个Oracle数据库中。
expdp的常用语法如下:复制代码expdp userid=用户名/密码@数据库连接标识文件=数据泵导出文件的路径和名称 logfile=日志文件的路径和名称 dumpfile=dump文件的路径和名称full=yes/no schemas=schema_name[,schema_name]tables=table_name[,table_name] ...其中,userid是用户名和密码,用于连接到数据库;文件路径和名称指定了数据泵导出文件、日志文件和dump文件的路径和名称;full参数用于指定是否导出整个数据库;schemas参数用于指定要导出的模式;tables参数用于指定要导出的表。
impdp的常用语法如下:复制代码impdp userid=用户名/密码@数据库连接标识文件=数据泵导出文件的路径和名称 logfile=日志文件的路径和名称 dumpfile=dump文件的路径和名称full=yes/no schemas=schema_name[,schema_name]tables=table_name[,table_name] ...其中,userid是用户名和密码,用于连接到数据库;文件路径和名称指定了数据泵导出文件、日志文件和dump文件的路径和名称;full参数用于指定是否导入整个数据库;schemas参数用于指定要导入的模式;tables参数用于指定要导入的表。
需要注意的是,在使用expdp和impdp时,必须确保目标数据库已经创建了相应的表、视图、序列等对象,否则导入操作将会失败。
同时,在使用expdp和impdp 时,需要确保具有足够的权限,并且要遵守Oracle数据库的数据泵规范和最佳实践。
impdp不同于expdp的参数!1 remap参数remap_schema=source_schema:target_schema把一个模式的数据导入到另一个模式中remap_datafile=source_datafile:target_datafile不同平台间的文件名约定不同,可以方便的重新映射文件名字eg:REMAP_DATAFILE='DB1$:[HRDATA.PAYROLL]tbs6.f':'/db1/hrdata/payroll/tbs6.f'从windows 平台到unix 平台remap_tablespace=source_tablespace:target_tablespace把一个表空间的数据导入到另一个表空间中2 转换参数TRANSFORM = transform_name:value[:object_type]允许在导入时选择是否导入相关objects的属性,如SEGMENT_ATTRIBUTES/STORAGE / OID / PCTSPACEtransform_name=SEGMENT_ATTRIBUTES/STORAGE / OID / PCTSPACEvalue=y/nobject_type=table/index/cluster...3 导入过滤table_exists_action={SKIP | APPEND | TRUNCATE | REPLACE}当导入时,原有表存在时候的处理方式skip 跳过处理这个表append 追加值到表中truncate 截除原来表中数据,重新导入replace 删除表,重新建立表,再导入SQLFILE=[directory_object:]file_name只把要导入的dmp文件中的ddl提取到.sql文件中,并不实际的导入数据.eg:sqlfile=impdp_dir:ddl.sql4 网络参数network_link可以同过dblink直接连到远程数据库上,不需要dmp导出文件的情况下,直接从远程数据库读取数据导入到本地服务器中!.5 其他参数REUSE_DATAFIELS={Y | N}该选项指定建立表空间时是否覆盖已存在的数据文件.默认为NSKIP_UNUSABLE_INDEXES={Y | N}指定导入是是否跳过不可使用的索引,默认为NSTREAMS_CONFIGURATION={Y | N}指定是否导入流元数据(Stream Matadata),默认值为Y.TRANSPORT_DATAFILES=datafile_name该选项用于指定搬移空间时要被导入到目标数据库的数据文件Datafile_name用于指定被复制到目标数据库的数据文件=============================================================================== ====Data pump 必须使用目录对象(安全性保证)1 create directory impdp_dir_1 as ‘/export/home/oradata/impdp_dir_1’2 grant read, write on directory impdp_dir_1 to user;使用dump的三种方式:1 命令行2 参数文件parafile=3 交互式(cirl +c 中断当前会话进入交互模式attach 新开对话,加入到运行中的对话中)交互式的好处很多(引入job这个概念的好处),1 比如在导出一个很大的文件的时候,物理空间不够了,那么可以通过不中断job的情况下addfile来添加空间.2 比如在系统忙得时候,可以将parallel设置的小些,等系统空闲时将并发数提高,加快导入导出的速度.基本参数:1 directory2 dumpfile 建议使用dumpfile 可以同时指定目录和文件名。
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';Create directory dir_dp as …d:\test\dump‟;二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select * from dba_directories;三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;四、导出数据1)按用户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并行进程parallelexpdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;4)按查询条件导expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACE S=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;五、还原数据1)导到指定用户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;2)改变表的ownerimpdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导入表空间impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACE S=example;4)导入数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append;----------------------------Expdp/Impdp的相关参数---------------------------- EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和A TTACH选项外,不能指定任何其他选项,示例如下:Expdp scott/tiger ATTACH=scott.export_job2. CONTENT该选项用于指定要导出的内容.默认值为ALLCONTENT={ALL | DATA_ONL Y | METADA TA_ONL Y}当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DA TA_ONL Y时,只导出对象数据,为METADA TA_ONL Y时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONL Y3. DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建立目录:CREATE DIRECTORY dump as …d:dump‟;查询创建了那些子目录:SELECT * FROM dba_directories;4. DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name [,….]Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKSEXTIMATE={BLOCKS | STA TISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STA TISTICS时,根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a.dump6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为NEXTIMATE_ONL Y={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.Expdp scott/tiger ESTIMATE_ONL Y=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,….]Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE 和INCLUDE不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW8. FILESIZE指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)9. FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(‟25-08-2004 14:35:00‟,‟DD-MM-YYYY HH24:MI:SS‟)”11. FULL指定数据库模式导出,默认为NFULL={Y | N}为Y时,标识执行数据库导出.12. HELP指定是否显示EXPDP命令行选项的帮助信息,默认为N当设置为Y时,会显示导出选项的帮助信息.Expdp help=y13. INCLUDE指定导出时要包含的对象类型及相关对象INCLUDE = object_type[:name_clause] [,… ]14. JOB_NAME指定要导出作用的名称,默认为SYS_XXXJOB_NAME=jobname_string15. LOGFILE指定导出日志文件文件的名称,默认名称为export.logLOGFILE=[directory_object:]file_nameDirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.17. NOLOGFILE该选项用于指定禁止生成导出日志文件,默认值为N.18. PARALLEL指定执行导出操作的并行进程个数,默认值为119. PARFILE指定导出参数文件的名称PARFILE=[directory_path] file_name20. QUERY用于指定过滤导出数据的where条件QUERY=[schema.] [table_name:] query_clauseSchema 用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与 CONNECT=METADA TA_ONL Y,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.Expdp scott/tiger directory=dump dumpfiel=a.dmpTables=emp query=‟WHERE deptno=20‟21. SCHEMAS该方案用于指定执行方案模式导出,默认为当前用户方案.22. STATUS指定显示导出作用进程的详细状态,默认值为023. TABLES指定表模式导出TABLES=[schema_name.]table_name[:part ition_name][,…]Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.24. TABLESPACES指定要导出表空间列表25. TRANSPORT_FULL_CHECK该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时, 导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.26. TRANSPORT_TABLESPACES指定执行表空间模式导出27. VERSION指定被导出对象的数据库版本,默认值为COMPATIBLE.VERSION={COMPATIBLE | LATEST | version_string}为COMPATIBLE时,会根据初始化参数COMPA TIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.-------------------------------------应用------------------------------------- Data Pump 反映了整个导出/导入过程的完全革新。
oracle使⽤expdp、impdp和exp、imp导⼊导出表及表结构使⽤expdp、impdp和exp、imp时应该注重的事项:1、exp和imp是客户端⼯具程序,它们既可以在客户端使⽤,也可以在服务端使⽤。
2、expdp和impdp是服务端的⼯具程序,他们只能在oracle服务端使⽤,不能在客户端使⽤。
3、imp只适⽤于exp导出的⽂件,不适⽤于expdp导出⽂件;impdp只适⽤于expdp导出的⽂件,⽽不适⽤于exp导出⽂件。
4、对于10g以上的服务器,使⽤exp通常不能导出0⾏数据的空表,⽽此时必须使⽤expdp导出。
exp、imp导⼊导出sqlplus 进⼊数据库中导出直接在命令⾏下写命令1.导出⾃⼰的表exp userid=scott/tiger@myoral tables=(emp,dept) file=/opt/e1.dmp2.导出其它⽅案的表如果⽤户要导出其它⽅案的表,则需要dba的权限或是exp_full_database的权限,⽐如system就可以导出scott的表exp userid=system/manager@myoral tables=(scott.emp) file=d:\e2.emp3. 导出表的结构exp userid=scott/tiger@accp tables=(emp) file=/opt/e3.dmp rows=n4. 使⽤直接导出⽅式exp userid=scott/tiger@accp tables=(emp) file=/opt/e4.dmp direct=y这种⽅式⽐默认的常规⽅式速度要快,当数据量⼤时,可以考虑使⽤这样的⽅法。
这时需要数据库的字符集要与客户端字符集完全⼀致,否则会报错导出⽅案导出⽅案是指使⽤export⼯具导出⼀个⽅案或是多个⽅案中的所有对象(表,索引,约束...)和数据。
并存放到⽂件中1. 导出⾃⼰的⽅案exp userid=scott/tiger@myorcl owner=scott file=/opt/scott.dmp2. 导出其它⽅案如果⽤户要导出其它⽅案,则需要dba的权限或是exp_full_database的权限,⽐如system⽤户可以导出任何⽅案exp userid=system/manager@myorcl owner=(system,scott) file=/opt/system.dmp导出数据库导出数据库是指利⽤export导出所有数据库中的对象及数据,要求该⽤户具有dba的权限或者是exp_full_database权限增量备份(好处是第⼀次备份后,第⼆次备份就快很多了)exp userid=system/manager@myorcl full=y inctype=complete file=/opt/all.dmp导⼊1. 导⼊⾃⼰的表imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp2. 导⼊表到其它⽤户要求该⽤户具有dba的权限imp_full_database imp userid=system/tiger@myorcl tables=(emp) file=/opt/xx.dmp touser=scott3. 导⼊表的结构,只导⼊表的结构⽽不导⼊数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp rows=n4. 导⼊数据如果对象(如⽐表)已经存在可以只导⼊表的数据imp userid=scott/tiger@myorcl tables=(emp) file=/opt/xx.dmp ignore=y导⼊⽅案导⼊⽅案是指使⽤import⼯具将⽂件中的对象和数据导⼊到⼀个或是多个⽅案中。
expdp 和impdp的笔记Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.数据泵导出导入(EXPDP和IMPDP)的作用1,实现逻辑备份和逻辑恢复.2,在数据库用户之间移动对象.3,在数据库之间移动对象4,实现表空间搬移.数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP 和IMPDP时应该注意的事项;EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.expdp选项1):ATTACH不能与其他选项一起使用2):CONTENT要导出的内容默认值ALLDATA_ONLYMETADATA_ONLY3):DIRECTORY 指定转储文件和日志文件的所在地DIRECTORY=directory_object数据库目录对象)expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp4):DUMPFILE指定转储文件的名称,默认为expdata.dmp5):ESTIMAT选项用于估算导出表所占的空间expdp scott/tiger TABLE=emp ESTIMAT=STATISTICS|BLOCKS6):ESTIMATE_ONLY改选项只是估算导出对象所占的空间,默认值为Y7):EXCLUDE执行导出操作时要排除的对象或相关对象,与INCLUDE选项不能一起使用expdp scott/tiger DIRECTORY=dump DUMPFILE=A.DMPEXCLUDE=view8):FILESIZE导出文件的最大尺寸,默认值为0(没有限制)9)FLASHBACK_SCN该选项导出特定时刻的表数据expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=38582310):FLASHBACK_TIME该选项用于导出特定时间点的表数据FLASHBACK_TIME="TO_TIMESTAMP(time-value)"expdp scott/tiger DIRECTIONARY=dump DUMPFILE=a.dmp FLASHBACK_TIME("TO_TIMESTMP('25-08-200814:35:00','DD-MM-YYYY HH24:MI:SS');11):FULL 导出整个数据库12)HELP13)INCLUDE 该选项指定导出的对象类型expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpINCLUDE=table14):JOB_NAME 该选项用于指定导出作业的名称expdp scott/tiger DIRECTORYL=dump DUMPFILE=a.dmpJOB_NAME=maxu15)LOGFILE 该选项导出日志文件的名称expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log 16)NETWORK_LINK该选项指定数据库链名,将远程数据库导出到本地的转储文件中NETWORK_LINK=source_database_link注:对象表不支持远程导出17):NOLOGFILE该选项指定禁止生成导出日志文件18):PARALLEL 该选项指定导出操作的并行进程个数,默认值为1expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp PARALLEL=3;19):PARFILE指定导出参数文件的名称TABLES=dept,empDIRECTORY=dumpDUMPFILE=tab.dmp 20):QUERY 该选项过滤出数据的WHERE条件expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp TABLES=emp query=' "WHERER= deptno=20" '21):SCHEMASexpdp system/oracle DIRECTORY=dump DUMPFILE=a.dmp SCHEMAS=scott,system22):STATUS导出作业的状态23):TABLES 表模式expdp system/oracle directory=dump dumpfile=a.dmptables=scott.dep,scott.emp24):TABLESPACES 导出表空间列表expdp system/oracle DIRECTORY=dumpDUMPFILE=a.dmp tablespace=user0125):TRANSPORT_FULL_CHECK该选项指定被搬移表空间和搬移表空间的依赖26):TRANSPORT_TABLESPACE表空间的导出模式27):VERSION 保持向下兼容expdp scott/tiger DIRECTORY=dump DUMPFILE=c.dmpVERSION=LASTEST根据初始参数COMPATIBLE的设置调用EXPDP SQL>conn system/oracle SQL>create DIRECTORY dump_dir AS 'd:dump'; SQL>GRANT read,write on DIRCTORY dump_dir to scott;导出表expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp导出schemasexpdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system.scott;导出表空间expdp system/oracle DIRECTORY=dump_dirDUMPFILE=tablespace.dmp TABLESPACES=user01,user02导出数据库expdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=YIMPDPREMAP_DATAFILE该选项将源数据文件的名称转变为目标数据文件名,当在不用平台之间搬移表空间时可能需要使用该选项REMAP_SCHEMAimpdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp REMAP_SCHEMA=scott:systemREMAP_TABLESPACE将源表空间的所有对象导入目标表空间impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp REMAP_RABLESPACE=user01:user02REUSE_DATAFILES是否覆盖已存在的数据文件SCHEMAS导入指定模式(schemas)impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp SCHEMAS=scottSKIP_UNUSABLE_INDEXED是否跳过不可使用的索引SQLFILE指定导入操作需要执行DDL语句写入到一个脚本SQLFILE=[dirctory_object:]file_nameimpdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmpSQLFILE=a.sqlSTREAMS_CONFIGURATIONTABLE_EXISTS_ACTION当表已存在是执行的操作skip|append|truncate|replaceTABLESimpdp scott/tiger DIRECTOR=dump DUMPFILE=tab.dmp TABLES= empTABLESPACESimpdp scott/tiger directory=dumpdumpfile=tab.dmp tablespace=usr01TRANSPORT_DATAFILES该选项指定当搬移表空间时要被导入到目标数据库的数据文件名称impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp TRANSPORT_DATAFILE='/user01/data/tbs.dbf'TRANSPORT_FULL_CHECK表空间依赖检查TRANSPORT_TABLESPACE表空间模式导入VERSION调用IMPDPimpdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,empimpdp system/oracle DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.empREMAP_SCHEMA=scott:systemschemas(模式)impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scottimpdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system表空间impdp system/oracle DIRECTORY=dump_dirDUMPFILE=tablespace.dmp TABLESPACE=user01数据库impdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y;搬移表空间nls_database_parameters条件约束字符集一样和国家字符集一样两个数据库不能同名不能搬移system和sys用户对象的表空间如果是其他平台,将初始参数compatible设置10.0自包含表空间是指具有有关联关系的表空间集合,假设表空间A包含了表EMP,而表空间B包含了表空间EMP的索引IND_EMP,如果要搬移表空间B,则必须同时搬移表空间A,则表空间A和B为自包含表空间集合违反自包含集合规则表空间包含sys对象表空间包含了索引所在的表空间,但没有包含索引基表所在的表空间表空间集合没有高喊分区表的所有分区表空间包含了表所在的表空间,但没有包含LOB列所在的表空间source database demodest database orcl使用DBMS_TTS包检查表空间是否为自包含的SQL>conn system/oracle SQL>executesys.dbms_tts.transport_set_check('user02',true) sql>select * from sys.transport_set_violations;sql>alter tablespace users read onlySQL>host expdp system/oracle DIRECTORY=dump_dirDUMPFILE=transport.dmp TRANSPORT_TABLESPACE=users把transport.dmp文件拷贝目标服务器上在目标数据库上比照两个数据库的块大小,如不一样destSQL>alter system set db_cache_size=20m; SQL>alter system setdb_4k_cache_size=4M;impdp system/oracle DIRECTORY=dump_dir DUMPFILE=transport.dmpTRANSPORT_DATAFILES=d:oracleoradataorclusers.dbf REMAP_SCHEMA=scott:hr。
expdp、impdp用法详解Oracle数据泵一、数据泵的作用:1.实现逻辑备份和逻辑恢复2.在数据库用户之间移动对象3.在数据库之间移动对象4.实现表空间转移二、数据泵的特点与传统导出导入的区别1.EXP和IMP是客户段工具程序, EXPDP和IMPDP是服务端的工具程序2.EXP和IMP效率比较低. EXPDP和IMPDP效率高3.数据泵功能强大并行、过滤、转换、压缩、加密、交互等等4.数据泵不支持9i以前版本, EXP/IMP短期内还是比较适用5.同exp/imp数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.三、DATA PUMP的体系结构:四、EXPDP语法介绍:数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输数据对象的机制。
该实用程序可以使用以下命令进行调用:示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp您可以控制导出的运行方式。
具体方法是: 在 'expdp' 命令后输入各种参数。
要指定各参数,请使用关键字:格式: expdp KEYWORD=value 或KEYWORD=(value1,value2,...,valueN)示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表USERID 必须是命令行中的第一个参数。
关键字说明 (默认)------------------------------------------------------------------------------ATTACH 连接到现有作业, 例如 ATTACH [=作业名]。
COMPRESSION 减小有效的转储文件内容的大小关键字值为: (METADATA_ONLY) 和 NONE。
expdp/impdp 使用总结expdp/impdp 使用总结1.使用expdp要先在数据库中创建directory,并给相应的用户read,write权限.SQL>create directory dmpdir as '/u01/dmdir';SQL>grant read,write on directory to test;2.最常用导出方法$expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=test$expdp scott/tiger DUMPFILE=tmp_dump.dmp DIRECTORY=dmpdirTABLES=(tmp_test:p1,tmp_test:p2) JOB_NAME=tmp_dump LOGFILE=tmp_dump.log$expdp scott/tiger DUMPFILE=full.dmp DIRECTORY=dmpdir FULL=Y JOB_NAME=full$expdp scott/timer DUMPFILE=tmp_200703.dmp DIRECTORY=dmpdir TABLES=tmp QUERY=\"where to_char\(create_time,\'yyyy-mm-dd\'\)\<\'2007-04\'\"常用一些参数说明:SCOTT/TIGER:用户/密码(*)DUMPFILE:导出后的文件名(*)DIRECTORY:导出文件存放位置(位于服务器端)(*)CONTENT:导出文件中包含的内容(默认为:ALL,可选DATA_ONLY/METADATA_ONLY) FILESIZE:指定导出文件大小(单位为bytes).JOB_NAME:此次导出进程使用的名称,方便跟踪查询(可选)LOGFILE:日志文件名(默认为:export.log)INCLUDE:导出时包含指定的类型(例:INCLUDE=TABLE_DATA,INCLUDE=TABLE:"LIKE 'TAB%'"INCLUDE=TABLE:”NOT LIKE …TAB%‟”…)EXCLUDE:导出时排除的数据类型(例:EXCLUDE=TABLE:EMP)FULL:全库导出时使用(同EXP的FULL,默认为N)SCHEMA:导出某一个SCHEMA下的所有数据TABLES:按表导出(这里的方法和EXP一样)TABLESPACE:指定一个表空间导出.QUERY:按表导出时,使用条件语句限定导出范围(同exp中的QUERY)TRANSPORT_FULL_CHECK:TRANSPORT_TABLESPACES:FLASHBACK_SCN:FLASHBACK_TIME:PARALLEL:并行操作PARFILE:NETWORK_LINK:3.导出过程中的监控当Data Pump Export (DPE)运行时,按Control-C;它将阻止消息在屏幕上显示,但不停止导出进程本身。
相反,它将显示DPE提示符(如下所示)。
进程现在被认为处于“交互式”模式:Export>这种方法允许在这个DPE作业上输入命令查询及控制当前作业。
4.并行操作(PARALLEL)您可以通过PARALLEL参数为导出使用一个以上的线程来显著地加速作业。
每个线程创建一个单独的转储文件,因此参数dumpfile应当拥有和并行度一样多的项目。
您可以指定通配符作为文件名,而不是显式地输入各个文件名,例如:expdp ananda/abc123 tables=CASES directory=DPDATA1 dumpfile=expCASES_%U.dmp parallel=4job_name=Cases_Export注意:dumpfile参数拥有一个通配符%U,它指示文件将按需要创建,格式将为expCASES_nn.dmp,其中nn从01开始,然后按需要向上增加。
在并行模式下,状态屏幕将显示四个工作进程。
(在默认模式下,只有一个进程是可见的)所有的工作进程同步取出数据,并在状态屏幕上显示它们的进度。
分离访问数据文件和转储目录文件系统的输入/输出通道是很重要的。
否则,与维护Data Pump作业相关的开销可能超过并行线程的效益,并因此而降低性能。
并行方式只有在表的数量多于并行值并且表很大时才是有效的。
5.数据库监控您还可以从数据库视图获得关于运行的Data Pump作业的更多信息。
监控作业的主视图是DBA_DATAPUMP_JOBS,它将告诉您在作业上有多少个工作进程(列DEGREE)在工作。
另一个重要的视图是DBA_DATAPUMP_SESSIONS,当它与上述视图和V$SESSION结合时将给出主前台进程的会话SID。
select sid, serial#from v$session s, dba_datapump_sessions dwhere s.saddr = d.saddr;这条指令显示前台进程的会话。
更多有用的信息可以从警报日志中获得。
当进程启动时,MCP和工作进程在警报日志中显示如下:kupprdp:master process DM00 started with pid=23, OS id=20530 to execute -SYS.KUPM$MCP.MAIN('CASES_EXPORT', 'ANANDA');kupprdp:worker process DW01 started with worker id=1, pid=24, OS id=20532 to execute -SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA');kupprdp:worker process DW03 started with worker id=2, pid=25, OS id=20534 to execute -SYS.KUPW$WORKER.MAIN('CASES_EXPORT', 'ANANDA');它显示为数据泵操作启动的会话的PID。
您可以用以下查询找到实际的SID:select sid, program from v$session where paddr in(select addr from v$process where pid in (23,24,25));PROGRAM列将对应警报日志文件中的名称显示进程DM(为主进程)或DW (为工作进程)。
如果一个工作进程使用了并行查询,比如说SID 23,您可以在视图V$PX_SESSION中看到它,并把它找出来。
它将为您显示从SID 23代表的工作进程中运行的所有并行查询会话:select sid from v$px_session where qcsid = 23;从视图V$SESSION_LONGOPS中可以获得其它的有用信息来预测完成作业将花费的时间。
select sid, serial#, sofar, totalworkfrom v$session_longopswhere opname = 'CASES_EXPORT'and sofar != totalwork;列totalwork显示总工作量,该列的sofar数量被加和到当前的时刻—因而您可以用它来估计还要花多长时间。
6.处理特定对象l Data Pump允许您只导出特定类型的对象。
例如,以下命令只导出过程,而不导出其它任何东西(不导出表、视图、甚至函数):expdp scott/tiger directory=dmpdir dumpfile=procedure.dmp include=PROCEDUREl要只导出一些特定的对象(比如说,函数FUNC1和过程PROC1) expdp scott/tiger directory=dmpdir dumpfile=test.dmpinclude=PROCEDURE:\"=\'PROC1\'\",FUNCTION:\"=\'FUNC1\'\"l可以用导出的dmp文件来创建dmp文件中包含对象的DDL脚本,以供之后使用。
一个称为SQLFILE(impdp参数)参数允许创建DDL脚本文件。
impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=expprocs.dmp SQLFILE=aa.sql使用这种方法的impdp,可以从dp出来的dmp文件中提取对象的DDL语句,这样的impdp并不把数据导入数据库中,只是创建DDL语句文件2008-11-24EXPDP和IMPDP使用说明(实例)Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.数据泵导出导入(EXPDP和IMPDP)的作用1,实现逻辑备份和逻辑恢复.2,在数据库用户之间移动对象.3,在数据库之间移动对象4,实现表空间搬移.数据泵导出导入与传统导出导入的区别在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用.EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:Expdp scott/tiger ATTACH=scott.export_job2. CONTENT该选项用于指定要导出的内容.默认值为ALLCONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建立目录:CREATE DIRECTORY dump as …d:dump‟;查询创建了哪些子目录:SELECT * FROM dba_directories;4. DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name [,….]Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a.dump6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为NEXTIMATE_ONLY={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,….]Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW8. FILESIZE指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)9. FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(‟25-08-2004 14:35:00‟,‟DD-MM-YYYY HH24:MI:SS‟)”11. FULL指定数据库模式导出,默认为NFULL={Y | N}为Y时,标识执行数据库导出.12. HELP指定是否显示EXPDP命令行选项的帮助信息,默认为N当设置为Y时,会显示导出选项的帮助信息.Expdp help=y13. INCLUDE指定导出时要包含的对象类型及相关对象INCLUDE = object_type[:name_clause] [,… ]14. JOB_NAME指定要导出作用的名称,默认为SYS_XXXJOB_NAME=jobname_string15. LOGFILE指定导出日志文件文件的名称,默认名称为export.logLOGFILE=[directory_object:]file_nameDirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.17. NOLOGFILE该选项用于指定禁止生成导出日志文件,默认值为N.18. PARALLEL指定执行导出操作的并行进程个数,默认值为119. PARFILE指定导出参数文件的名称PARFILE=[directory_path] file_name20. QUERY用于指定过滤导出数据的where条件QUERY=[schema.] [table_name:] query_clauseSchema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.Expdp scott/tiger directory=dump dumpfiel=a.dmpTables=emp query=‟WHERE deptno=20‟21. SCHEMAS该方案用于指定执行方案模式导出,默认为当前用户方案.22. STATUS指定显示导出作用进程的详细状态,默认值为023. TABLES指定表模式导出TABLES=[schema_name.]table_name[:partition_name][,…]Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.24. TABLESPACES指定要导出表空间列表25. TRANSPORT_FULL_CHECK该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.26. TRANSPORT_TABLESPACES指定执行表空间模式导出27. VERSION指定被导出对象的数据库版本,默认值为COMPATIBLE.VERSION={COMPATIBLE | LATEST | version_string}为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.CREATE DIRECTORY dump_dir AS …D:DUMP‟;GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;1,导出表Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp2,导出方案Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmpSCHEMAS=system,scott3.导出表空间Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmpTABLESPACES=user01,user024,导出数据库Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y使用IMPDPIMPDP命令行选项与EXPDP有很多相同的,不同的有:1,REMAP_DATAFILE该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项.REMAP_DATAFIEL=source_datafie:target_datafile2,REMAP_SCHEMA该选项用于将源方案的所有对象装载到目标方案中.REMAP_SCHEMA=source_schema:target_schema3,REMAP_TABLESPACE将源表空间的所有对象导入到目标表空间中REMAP_TABLESPACE=source_tablespace:target:tablespace4.REUSE_DATAFILES该选项指定建立表空间时是否覆盖已存在的数据文件.默认为NREUSE_DATAFIELS={Y | N}5.SKIP_UNUSABLE_INDEXES指定导入是是否跳过不可使用的索引,默认为N6,SQLFILE指定将导入要指定的索引DDL操作写入到SQL脚本中SQLFILE=[directory_object:]file_nameImpdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql7.STREAMS_CONFIGURATION指定是否导入流元数据(Stream Matadata),默认值为Y.8,TABLE_EXISTS_ACTION该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIPTABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | REPLACE }当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项9.TRANSFORM该选项用于指定是否修改建立对象的DDL语句TRANSFORM=transform_name:value[:object_type]Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.Impdp scott/tiger directory=dump dumpfile=tab.dmpTransform=segment_attributes:n:table10.TRANSPORT_DATAFILES该选项用于指定搬移空间时要被导入到目标数据库的数据文件TRANSPORT_DATAFILE=datafile_nameDatafile_name用于指定被复制到目标数据库的数据文件Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmpTRANSPORT_DATAFILES=‟/user01/data/tbs1.f‟调用IMPDP1, 导入表Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmpTABLES=dept,empImpdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmpTABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM方案中.注意,如果要将表导入到其他方案中,必须指定REMAP_SCHEMA选项.2,导入方案Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmpSCHEMAS=scottImpdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmpSCHEMAS=scott REMAP_SCHEMA=scott:system3,导入表空间Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmpTABLESPACES=user014,导入数据库Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=yEXPDP和IMPDP使用说明Oracle Database 10g引入了最新的数据泵(Data Dump)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个oracle数据库中.数据泵导出导入(EXPDP和IMPDP)的作用1、实现逻辑备份和逻辑恢复.2、在数据库用户之间移动对象.3、在数据库之间移动对象4、实现表空间搬移. 数据泵导出导入与传统导出导入的区别:在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项; EXP和IMP是客户段工具程序,它们既可以在客户端使用,也可以在服务器段使用.EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP 导出文件.数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:Expdp scott/tiger ATTACH=scott.export_job2. CONTENT该选项用于指定要导出的内容.默认值为ALLCONTENT={ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dumpCONTENT=METADATA_ONLY3. DIRECTORY指定转储文件和日志文件所在的目录DIRECTORY=directory_objectDirectory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS目录Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump建立目录:CREATE DIRECTORY dump as …d:dump‟;查询创建了那些子目录:SELECT * FROM dba_directories;4. DUMPFILE用于指定转储文件的名称,默认名称为expdat.dmpDUMPFILE=[directory_object:]file_name [,….]Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp5. ESTIMATE指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=dump DUMPFILE=a.dump6. EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为NEXTIMATE_ONLY={Y | N}设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE该选项用于指定执行操作时释放要排除对象类型或相关对象EXCLUDE=object_type[:name_clause] [,….]Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE 不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW8. FILESIZE指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)9. FLASHBACK_SCN指定导出特定SCN时刻的表数据FLASHBACK_SCN=scn_valueScn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmpFLASHBACK_SCN=35852310. FLASHBACK_TIME指定导出特定时间点的表数据FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(‟25-08-2004 14:35:00‟,‟DD-MM-YYYY HH24:MI:SS‟)”11. FULL指定数据库模式导出,默认为NFULL={Y | N}为Y时,标识执行数据库导出.12. HELP指定是否显示EXPDP命令行选项的帮助信息,默认为N当设置为Y时,会显示导出选项的帮助信息.Expdp help=y13. INCLUDE指定导出时要包含的对象类型及相关对象INCLUDE = object_type[:name_clause] [,… ]14. JOB_NAME指定要导出作用的名称,默认为SYS_XXXJOB_NAME=jobname_string15. LOGFILE指定导出日志文件文件的名称,默认名称为export.logLOGFILE=[directory_object:]file_nameDirectory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.17. NOLOGFILE该选项用于指定禁止生成导出日志文件,默认值为N.18. PARALLEL指定执行导出操作的并行进程个数,默认值为119. PARFILE指定导出参数文件的名称PARFILE=[directory_path] file_name20. QUERY用于指定过滤导出数据的where条件QUERY=[schema.] [table_name:] query_clauseSchema用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.Expdp scott/tiger directory=dump dumpfiel=a.dmpTables=emp query=‟WHERE deptno=20‟21. SCHEMAS该方案用于指定执行方案模式导出,默认为当前用户方案.22. STATUS指定显示导出作用进程的详细状态,默认值为023. TABLES指定表模式导出TABLES=[schema_name.]table_name[:partition_name][,…]Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.24. TABLESPACES指定要导出表空间列表25. TRANSPORT_FULL_CHECK该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.当设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误信息.26. TRANSPORT_TABLESPACES指定执行表空间模式导出27. VERSION指定被导出对象的数据库版本,默认值为COMPATIBLE.VERSION={COMPATIBLE | LATEST | version_string}为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.CREATE DIRECTORY dump dir AS …D:DUMP‟;GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;1、导出表Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp2、导出方案Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmpSCHEMAS=system,scott3、导出表空间Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmpTABLESPACES=user01,user024、导出数据库Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y使用IMPDPIMPDP命令行选项与EXPDP有很多相同的,不同的有:1、REMAP_DATAFILE该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选项. REMAP_DATAFIEL=source_datafie:target_datafile2、REMAP_SCHEMA该选项用于将源方案的所有对象装载到目标方案中.REMAP_SCHEMA=source_schema:target_schema3、REMAP_TABLESPACE将源表空间的所有对象导入到目标表空间中REMAP_TABLESPACE=source_tablespace:target:tablespace4、REUSE_DATAFILES该选项指定建立表空间时是否覆盖已存在的数据文件.默认为NREUSE_DATAFIELS={Y | N}5、SKIP_UNUSABLE_INDEXES指定导入是是否跳过不可使用的索引,默认为N6、SQLFILE指定将导入要指定的索引DDL操作写入到SQL脚本中SQLFILE=[directory_object:]file_nameImpdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql7、STREAMS_CONFIGURATION指定是否导入流元数据(Stream Matadata),默认值为Y.8、TABLE_EXISTS_ACTION该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIPTABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | REPLACE }当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项9、TRANSFORM该选项用于指定是否修改建立对象的DDL语句TRANSFORM=transform_name:value[:object_type]Transform_name用于指定转换名,其中SEGMENT_ATTRIBUTES用于标识段属性(物理属性,存储属性,表空间,日志等信息),STORAGE用于标识段存储属性,VALUE用于指定是否包含段属性或段存储属性,object_type用于指定对象类型.Impdp scott/tiger directory=dump dumpfile=tab.dmpTransform=segment_attributes:n:table10、TRANSPORT_DATAFILES该选项用于指定搬移空间时要被导入到目标数据库的数据文件TRANSPORT_DATAFILE=datafile_nameDatafile_name用于指定被复制到目标数据库的数据文件Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmpTRANSPORT_DATAFILES=‟/user01/data/tbs1.f‟调用IMPDP1、导入表Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,empImpdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM 方案中。