[Oracle] Data Pump详细使用教程(3)- impdp(一)

2014-11-24 16:16:06 · 作者: · 浏览: 0
[Oracle] Data Pump详细使用教程(3)- impdp
[Oracle] Data Pump详细使用教程(2)- expdp
http://www.2cto.com/database/201307/230731. html
导入模式
和导出模式一样,以下5种模式也是互斥的。
Full模式
设置Full=yes即可,如果没有DATAPUMP_IMP_FULL_DATABASE角色,只能导入到自己schema下的数据
Schema模式
设置Schema参数,语法如下
SCHEMAS=schema_name [,...]
下面这个例子导入hr数据到hr schema下
[plain]
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp
Table模式
设置Table参数,语法如下:
TABLES=[schema_name.]table_name[:partition_name]
如果没有指定schema_name,默认表示导入当前用户的schema下,如:
> 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模式
设置Tablespace参数,其语法如下:
TABLESPACES=tablespace_name [, ...]
下面是一个例子,要注意的是:这些要导入的tablespace必须已经存在,否则会导入失败。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,tbs_3,tbs_4
Transpotable Tablespace模式
设置Transpotable_tablespace参数,其语法定义如下:
TRANSPORT_TABLESPACES=tablespace_name [, ...]
只导入表空间的元数据,数据文件需有在操作 系统层面拷贝至本机服务器下,路径由Transport_datafiles指定,其语法如下:
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'
导入过程中的过滤
和导出过程中的过滤类似,数据过滤用QUERY和SAMPLE,元数据过滤用EXCLUDE和INCLUDE。
主要参数说明
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=YES
impdp 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
如果指定该参数,则不真