impdp导入命令的参数说明及常见用法

---------------命令参数说明---------------
impdp help=y

directory:目录;
dumpfile:如果是多个备份文件,用逗号分隔;参数后面可以使用目录及替换变量;如:dumpfile=pump_dir:backup_%U.dmp;
parfile:参数文件;需要说明绝对路径;
logfile:日志;
nologfile:不使用日志文件记录导入过程;nologfile=y;
sqlfile:从备份文件中提取sql的DDL语句,并写入该参数设置的文件中,如:sqlfile=mysqlfile.sql;
include:导入特定对象,如只导入表,会导入特定对象有依赖关系的对象,如索引、触发器等;例:include=table:"('emp','dept')";
exclude:排除特定对象;
table_exists_action:当表已存在时执行的操作;
skip(如果该表存在则跳过,默认值)
append(将导入的数据行附加到存在的表后面)
truncate(截断表,并从导入数据文件中重新装载数据,但是会跳过所有相关的元数据)尽量不要用此参数,导入速度将变得非常慢;要跳过相关元数据;
replace(删除存在的表,然后重建该表并导入数据)

job_name:导入作业名;
parallel:设置并行;
status:监视导入作业的状态频率,默认为1;

tables:导入指定的表,多个表用逗号分隔,同时也导入与这些表有依赖关系的对象,如索引,触发器和函数等;
tablespaces:导入表空间,同时也导入与这些表空间有依赖关系的所有数据库对象;
schemas:导入指定对象;要使用该参数登录数据库的用户,必须有imp_full_database的权限;
full:导入整个数据库,默认为n;

重映射参数:
remap_schema:将一个对象重映射为另一个对象;remap_schema=scott:crm
remap_datafile:该选项将源数据文件的名称转变为目标数据文件名,当在不用平台之间搬移表空间时可能需要使用该选项;
remap_tablespace:将源表空间的所有对象导入目标表空间;remap_tablespace='user01':'user02' ----user01为源库表空间,user02为目标库的表空间

transform:可以选择导入某个对象的存储参数或其他属性值;例如:oid说明是否分配新的oid给对象表;transform=OID:N,将旧的id映射成新的,解决ORA-39083报错;

flashback_scn:导入和闪回scn接近的数据;
flashback_time:导入闪回时间接近的数据;

transport_datafiles 执行表空间导入时,目标数据库将使用源库中COPY过来的数据文件作为可以移植表空间的数据文件;
transport_full_check:检查迁移表空间内的对象与迁移表空间外的对象是否有依赖性,只有在使用network_link参数时才有效;
transport_tablespaces:要迁移的表空间列表;

reuse_datafiles:是否覆盖已存在的数据文件
skip_unusable_indexed:是否跳过不可使用的索引
sqlfile 指定导入操作需要执行ddl语句写入到一个脚本
sqlfile=[dirctory_object:]file_name
impdp scott/tiger directory=dump dumpfile=tab.dmp sqlfile=a.sql streams_configuration

---------------导入整个数据库---------------
impdp system/pwd directory=expdmp dumpfile=full.dmp full=Y parallel=4 job_name=fullimpdp

---------------导入特定表空间---------------
impdp system/pwd directory=expdmp dumpfile=tbs1.dmp logfile=tbs1.log tablespaces=users table_exists_action=replace

---------------导入特定表---------------
impdp system/pwd directory=expdmp dumpfile=tb1.dmp logfile=tb1.log tables=emp table_exists_action=replace

---------------导入特定数据库对象---------------
impdp system/pwd directory=expdmp dumpfile=tb1.dmp logfile=tb1.log include=table,trigger table_exists_action=replace

调用IMPDP
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp
REMAP_SCHEMA=scott:system
schemas(模式)
impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system

表空间
impdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACE=user01

---------------导入脚本---------------
cat impcrm4.sh
impdp UCR_CRM4/pwd directory=crmdmp tables=tablename dumpfile=crm4.dmp logfile=crm4.log

---------------导入(表空间中存在某张表,那么DMP文件不会将该表导入)---------------
impdp USER/PASS dumpfile=exppump.DMP full=y

impdp sys/pwd directory=dbbak dumpfile=.dmp logfile=.log schemas=*** table_exists_action=replace

---------------主要用法是使用exclude和include,排除index时用exclude,导入index时必须用include---------------
用户数据导入
impdp system/pwd directory=DB_DUMP parallel=4 dumpfile=_%u.dmp logfile=.log remap_schema=源username:目标username exclude=index exclude=constraint

remap_tablespace=源表空间:目标表空间

posted @ 2026-07-26 10:59  秋之枫叶  阅读(2)  评论(0)    收藏  举报