[Oracle] Data Pump 详细使用教程(1)- 总览
[Oracle] Data Pump 详细使用教程(2)- 总览
[Oracle] Data Pump 详细使用教程(3)- 总览
[Oracle] Data Pump 详细使用教程(4)- 总览
[Oracle] Data Pump 详细使用教程(5)- 总览
导入模式
Full模式
Schema模式
SCHEMAS=schema_name [,...]
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp
Table模式
TABLES=[schema_name.]table_name[:partition_name]
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees,jobs
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp TABLES=sh.sales:sales_Q1_2012,sh.sales:sales_Q2_2012
Tablespace模式
TABLESPACES=tablespace_name [, ...]
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,tbs_3,tbs_4
Transpotable Tablespace模式
TRANSPORT_TABLESPACES=tablespace_name [, ...]
TRANSPORT_DATAFILES=datafile_name
DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link
TRANSPORT_TABLESPACES=tbs_6
TRANSPORT_FULL_CHECK=NO
TRANSPORT_DATAFILES='user01/data/tbs6.dbf'
导入过程中的过滤
主要参数说明
ACCESS_METHOD=[AUTOMATIC | DIRECT_PATH | EXTERNAL_TABLE | CONVENTIONAL]定义导入方法,强烈建议采用默认设置AUTOMATIC,不要改动。
CONTENT=[ALL | DATA_ONLY | METADATA_ONLY]定义只导入数据、元数据还是都要
DIRECTORY=directory_object
指定导入数据文件所在的文件夹
DUMPFILE=[directory_object:]file_name [, ...]指定导入Dump文件名称,可用通配符%U匹配多个Dump文件
HELP=YESimpdp help=y 显示帮助信息
JOB_NAME=jobname_string
指定Job_name,一般默认即可
LOGFILE=[directory_object:]file_name指定日志文件名
MASTER_ONLY=[YES | NO]指定只导入master table,由于master table包含dumpfile的信息,这样就可以指定dumpfile里包含哪些数据。
PARALLEL=integer
指定导入时的并行度
PARFILE=[directory_path]file_name指定参数文件
REMAP_DATA=[schema.]tablename.column_name:[schema.]pkg.function导入时对数据进行修改,比如重新生成PK防止和原有的PK冲突等。
REMAP_DATAFILE=source_datafile:target_datafile可以解决异构平台间文件命名规范不同的问题
REMAP_SCHEMA=source_schema:target_schema这个参数很常用,可以让你导入到不同的schema中,如果target_schema不存在,导入时会自动创建,下面是一个例子:
> expdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp > impdp system DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp REMAP_SCHEMA=hr:scott
REMAP_TABLE=[schema.]old_tablename[.partition]:new_tablename可以在导入时重命名表或分区,下面是一个例子:
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp TABLES=hr.employees REMAP_TABLE=hr.employees:emps
REMAP_TABLESPACE=source_tablespace:target_tablespace在导入时修改表空间名,下面是一个例子:
> impdp hr REMAP_TABLESPACE=tbs_1:tbs_6 DIRECTORY=dpump_dir1 DUMPFILE=employees.dmp
REUSE_DATAFILES=[YES | NO]是否重用数据文件,默认为NO,一定要谨慎,一旦设为YES,原有同名的数据文件将被覆盖
SQLFILE=[directory_object:]file_name如果指定该参数,则不真正执行导入,而是把导入时所需的DDL SQL写入到SQLFILE里。
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
-
SKIP
leaves the table as is and moves on to the next object. This is not a valid option if theCONTENT
parameter is set toDATA_ONLY
. -
APPEND
loads rows from the source and leaves existing rows unchanged. -
TRUNCATE
deletes existing rows and then loads rows from the source. -
REPLACE
drops the existing table and then creates and loads it from the source. This is not a valid option if theCONTENT
parameter is set toDATA_ONLY
.