Oracleexpdp与impdp导数(一)

2014-11-24 11:56:34 · 作者: · 浏览: 1
导出模板 userid="/ as sysdba" directory=fwy dumpfile=expdp%U.dmp logfile=expdp.log tables=( a.table1 a.table2 ) query=( GOLAPDATA.EPAY_PA_PAYMENT_INFO:"where PAYMENT_DATE >= date'2011-01-01'" GOLAPDATA.NSHOP_APPLY_BASE_INFO_N:"where APPLY_TIME >= date'2011-01-01'" ) filesize=4096M parallel=4 job_name=expdp_fwy
导入模板 userid="/ as sysdba" directory=fwy dumpfile=impdp%U.dmp logfile=impdp.log tables=( a.table1 a.table2 b.table3 ) query=( GOLAPDATA.EPAY_PA_PAYMENT_INFO:"where PAYMENT_DATE >= date'2011-01-01'" GOLAPDATA.NSHOP_APPLY_BASE_INFO_N:"where APPLY_TIME >= date'2011-01-01'" GOLAPDATA.NSHOP_POLICY_BASE_INFO_N:"where CALCU_DATE >= date'2011-01-01'" ) parallel=4 job_name=impdp_fwy TABLE_EXISTS_ACTION=REPLACE
NETWORK_LINK导入模板 先在目标库以sys用户建立dblink连到源库。 userid="/ as sysdba" directory=fwy logfile=impdp.log tables=( a.table1 a.table2 b.table3 ) query=( GOLAPDATA.EPAY_PA_PAYMENT_INFO:"where PAYMENT_DATE >= date'2011-01-01'" GOLAPDATA.NSHOP_APPLY_BASE_INFO_N:"where APPLY_TIME >= date'2011-01-01'" GOLAPDATA.NSHOP_POLICY_BASE_INFO_N:"where CALCU_DATE >= date'2011-01-01'" ) job_name=impdp_fwy network_link=to_t1lass parallel=4 TABLE_EXISTS_ACTION=REPLACE
#NETWORK_LINK,可以用于分区表,不能用于LONG字段的表。 #完毕后记得删除连到生产库的dblink。
参数 1.导什么? full=(N) | Y 是否全库导出,对于导入而言就是所有dmp文件内容导入 tablespaces=(tbs1,tbs2) schemas=(a,b,c) content=(all)(既导出表行又导出元数据)| data_only | metadata_only 这个等同于exp的rows=y|n等 #exclude 在限定范围内剔除相关的内容其余导出。 exclude=( table:"LIKE 'TMP%'", --可以选择TMP%的表被排除 table:"in ('EMPLOYEES','DEPART')" --可以选择这两个表被排除 index --可以选择索引被排除 ) schemas=hr exclude=( SCHEMAS:"='HR' --可以选择SCHEMA是HR的被排除
) full=Y include=TABLE:"in ('TAB1','TAB2')" --只包含表TAB1与TAB2 include=procedure --只包含过程 include=function include=package include=view:"like 'PRODUCT%'" include=index:"like 'EMP%'" --只包含EMP开头的索引 include=( package, function ) #include 限定导出或导入中只包括一组特定的对象 --导出hr,oe schema下的属于schema的对象 include= ( function, procedure, package, view:"like 'PRODUCT%'" table:"= 'T'" table:"like 'SAM%'" ) include与EXCLUDE在一个作业中只能指定一个。 include与exclude,这个范围可以是全库级别,schema级别,或者表级别。 可以在导出或导入操作中排除特定的数据库对象。如果设置了schemas参数,就是除了schemas中符合条件的对象不导出,其余导出。如果设置了tables参数,则是tables里面不符合条件的对象不导出,其余导出。但比如package就不属于某个特定的表,而是属于schema级别的。如果上面的content=data_only,那么除行数据外不导出任何对象。此情况下,你不能使用exclude与include参数。使用EXCLUDE与INCLUDE参数过滤元数据时,请记住,所有依赖被过滤对象的对象也会被过滤掉。例如,当EXCLUDE参数排除表时,也可以自动排除与该表相关的索引、约束、触发器等。
2.怎么导? directory=fwy --create directory fwy as '/paic/app/oracle/base/fwy';创建,导出导入都要。 COMPRESSION=ALL, DATA_ONLY, [METADATA_ONLY] and NONE.(11g才有) estimate=blocks (默认)| statistics 空间估算时使用数据块还是表统计信息 estimate_only=N (默认)| Y --只估算,不启动导出作用。 #sample参数 SAMPLE=hr.tab:30 --这样hr的tab只导出30%,而hr其余表则100%导出。 schema=hr SAMPLE=30 则只导出该表30%的内容 TABLE_EXISTS_ACTION=(SKIP)|APPEND|REPLACE|TRUNCATE SKIP是如果有已经存在的对象就跳过; APPEND是在原有数据基础上继续增加(APPEND)此时所有相关的元数据都不会导入了仅仅是导入追加数据而已; REPLACE是先DROP表,然后创建表,最后完成数据插入(REPLACE);已测试replace不能针对SEQUENCE TRUNCATE是先TRUNCATE,再完成数据插入(TRUNCATE)。 重映射函数(一般输入的时候用) remap_table=hr.emp1:emp2 --表重命名为emp2 remap_schema=A:X,B:Y 导入时改变对象的属主 remap_tablespace=A:B 导入时将原本属于表空间A的对象都放到表空间B中,一般与上面的remap_schema配合使用,因为用户的默认表空间不同。 remap_datafile='/data