EXPDP/IMPDP整理
EXPDP/IMPDP整理
2018/1/7 21:15:50
迁移用户
注意:用户下物化视图不能自动导入
先说数据泵提供的主要特性(包括,但不限于):
1. 支持并行处理导入、导出任务
2. 支持暂停和重启动导入、导出任务
3. 支持通过Database Link的方式导出或导入远端数据库中的对象
4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、 数据文件或数据所在表空间。
5. 导入/导出时提供了非常细粒度的对象控制。通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象。
除了使用network_link参数外,expdp生成的文件都是在服务器上(Directory指定的位置)
使用EXPDP和IMPDP时应该注意的事项:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dmp;
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
SQL>
sqlplus / as sysdba
create directory dmp as '/dmp';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dmp to scott;
四、导出数据
1)按用户导
如导出到一个文件,并行度加了没用,如同时导出到多个文件,可用。
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp logfile=empdp_20100820.log DIRECTORY=dmp;
2)并行进程parallel
expdp scott/tiger@orcl directory=dmp dumpfile=scott_%U.dmp parallel=4 cluster=n filesize=30g job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dmp;
使用参数文件,参数重复以靠后参数为准
expdp ciqusr63/ciqusr63 dumpfile=ciqusr63_%U.dmp logfile=ciqusr63.log parfile=exptables.par
exptables.par 文件内容
directory=expdp
parallel=8
cluster=n
TABLES=T_ARCHIVE_REC,T_BLACKLIST_CODE,
4)按查询条件导
expdp scott/tiger@orcl directory=dmp dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dmp DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库(只有拥有dba或者exp_full_database和imp_full_database权限的用户才能执行。)
expdp system/manager DIRECTORY=dmp DUMPFILE=full.dmp FULL=y;
7)传输表空间模式
对应impdp/expdp中的Transport_tablespaces参数。这种模式与前面几种模式最显著的区别是生成的Dump文件中并不包含具体的逻辑数据,而只导出相关对象的元数据(即对象的定义,可以理解成表的创建语句),逻辑数据仍然在表空间的数据文件中,导出时需要将元数据和数据文件同时复制到目标端服务器。
这种导出方式效率很高,时间开销主要是花在复制数据文件产生的I/O上。expdp执行传输表空间模式的导出,用户必须拥有exp_full_database角色或者DBA角色。而通过传输表空间模式导入时,用户必须拥有imp_full_database角色或者DBA角色。
8)通过dblink导出数据
network_link模式.当数据文件比较大的时候,这时候在目标库上直接通过network_link模式在目标库上进行导入,而不需要在源库上进行expdp操作,处理方式和正常的expdp/impdmp过程类似。这样做的好处主要是可以避免了在源库上写大文件,然后还需要移动到目标库上.
SQL> grant datapump_exp_full_database to frank;
目标库
sql> create database link frank connect to frank identified by frank using 'frank';
impdp \'/ as sysdba\' network_link=frank schemas=frank
network_link 定义了一个db_link名称,该过程把源端的frank schemas导入到目标库上.
9) 过滤数据
过滤数据主要依赖于Query和Sample两个参数。其中Sample参数主要针对expdp导出功能。
1. Query
与exp命令中的Query功能类似,不过Expdp中,该参数功能得到了增强,控制的粒度更细。Expdp中的Query也是指定类似where语句来限定记录。语法如下:
Query = [Schema.][Table_name:] Query_clause
默认 情况如果不指定Schema.table_name,则Query_clause针对所有导出的表有效,或者你可以为每一个表指定不同的Query_clause,如:导出a表中所有id<5的记录,导出b表中所有name=’a’的记录,则Query的参数应该如下:
Query=A:”Where id<5″,B:”Where name=’a’”
如果Where条件前没有指定Schema名或者表名的话,默认就是针对当前所有要被导出的表。如:Query=Where id <5
Warning: 建议把Query参数放入到参数文件中使用,以避免转义符带来的麻烦。
2. Sample
该参数用来指定导出数据的百分比,可指定的值的范围从0.000001到99.999999,语法如下:
Sample=[[Schema_name.]Table_name:]sample_percent
指定该参数以后,EXPDP导出将自动控制导出的记录量,如导出A表中50%的记录,设置的Sample参数如下:
Sample=A:50
Warning: Sample_percent指定的值只是一个参考值,EXPDP会根据数据量算出一个近似值。
10)过滤对象
过滤对象主要依赖于Include和Exclude两个参数。这两个参数作用正好相反,在这两个参数中,可以指定你知道的任何对象类型(如:Package、Procedure、Table等等)或者对象名称(支持通配符)
1. Exclude 反规则
指定不被包含的对象类型或者对象名称。指定了该参数以后,指定的对象类型对应的所有对象都不会被导入或导出。如果被排除的对象有依赖的对象,那么其依赖的对象也不会被导入或导出。如:通过Exclude参数指定不导出表对象的话,不仅指定的表不会被导出,连这些表关联的Index、Check等都不会被导出。Warning: 建议把Exclude参数放入到参数文件中使用,以避免转义符带来的麻烦。
2. Include 正规则
与Exclude正好相反。指定包含的对象类型或者对象名称。
Warning: 由于两个参数功能正好相反,因此在执行导入或导出命令时,两个参数不能同时使用,否则Oracle也不知道你想要干什么啦。
exclude/include参数用法:
EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] -->排出特定对象
INCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] -->包含特定对象
object_type子句用于指定对象的类型,如table,sequence,view,procedure,package等等
name_clause子句可以为SQL表达式用于过滤特定的对象名字。SQL操作符以及对象名(可使用通配符)来过滤指定对象类型中的特定对象。
当未指定name_clause而仅仅指定object_type则所有该类型的对象都将被过滤或筛选。多个[object_type]:[name_clause]中间以逗号分割。
示例:
expdp SCHEMAS=scott EXCLUDE=SEQUENCE,TABLE:"IN ('EMP','DEPT')"
impdp SCHEMAS=scott INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"
常用的过滤SQL表达式
EXCLUDE=SEQUENCE,VIEW --过滤所有的SEQUENCE,VIEW
EXCLUDE=TABLE:"IN ('EMP','DEPT')" --过滤表对象EMP,DEPT
EXCLUDE=SEQUENCE,VIEW,TABLE:"IN ('EMP','DEPT')" --过滤所有的SEQUENCE,VIEW以及表对象EMP,DEPT
EXCLUDE=INDEX:"= 'INDX_NAME'" --过滤指定的索引对象INDX_NAME
INCLUDE=PROCEDURE:"LIKE 'PROC_U%'" --包含以PROC_U开头的所有存储过程(_ 符号代表任意单个字符)
INCLUDE=TABLE:"> 'E' " --包含大于字符E的所有表对象
其它常用操作符 NOT IN, NOT LIKE, <, != 等等
============================================================
常用参数:
对导出DMP进行压缩:compression=all;耗时长4倍,空间没压多少
统计操作时间:操作前加time;
===============================================================================================================
五、还原数据
在目标库上创建表空间,创建相关的用户;
也可不创建用户,IMPDP会自动创建用户.(条件:导出导入用dba身份,默认表空间存在)
1)导到指定用户下(测试表明,不指定schema,则导入到原用户下;)
impdp scott/tiger DIRECTORY=dmp DUMPFILE=scott_%U.dmp logfile=impscott.log SCHEMAS=scott;
导入时刻用并行度,但不能超过cpu数两倍。
impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp logfile=impdp_20100820.log parallel=10
2)改变表的owner,导出到不同用户下,必须用remap_schema,否则默认导入到原用户下;
impdp system/manager DIRECTORY=dmp DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dmp DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据(TABLE_EXISTS_ACTION 参数可等同于APPEND,REPLACE,TRUNCATE)
impdp system/manager DIRECTORY=dmp DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append
通过dblink,直接导入数据;但是目标表不能有数据;在需要恢复端执行,dblink为连接到原端的;
oracle@s10ogg:~> impdp gg/gg@s10ogg job_name=s10ggdmp tables=tcustmer content=data_only network_link='s10pub';
只导入用户下对象的元数据
impdp bys/bys schemas=bys directory=dmp file=bys5.dmp logfile=bys6.log content=metadata_only
只导入用户下对象的数据
impdp bys/bys schemas=bys directory=dmp file=bys5.dmp logfile=bys7.log content=data_only
导入用户下所有对象及数据: --不写content=,默认就是ALL
impdp bys/bys schemas=bys directory=dmp file=bys5.dmp logfile=bys8.log
================================================================================================
六、转移符
命令行下转义符的处理
Windows平台:
D:\> expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\"IN ('EMP', 'DEPT')\"
在Windows平台下,需要对象双引号进行转义,使用转义符\
Unix平台:
在未使用parfile文件的情形下,所有的符号都需要进行转义,包括括号,双引号,单引号等
expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\"IN \(\'EMP\', \'DEP\'\)\"
七、高级过滤
在导出/导入的时候,我们常常有这样的需求,只想导出/导入表结构,或者只想导出/导入数据。幸运的是数据泵也提供了该功能。使用 Content参数。该参数有三个属性
1) ALL : 导出/导入对象定义和数据,该参数的默认值就是ALL
2) DATA_ONLY : 只导出/导入数据。
3) METADATA_ONLY : 只导出/导入对象定义。
Warning: 有一点值得注意的时,在执行导出的时候,如果使用了高级过滤,如只导出了数据,那么导入时,需要确保数据定义已经存在。否则数据都变成没有主子了。如果数据定义已经存在,导入时最好指定data_only,否则会触发ORA-39151错误,因为对象已经存在了。
过滤已经存在的数据
我们知道,导入的表对象在目标库中已经存在,并且目标端没有创建数据完整性约束条件(RI)来检验数据的话,就有可能造成数据被重复导入。数据泵提供了一个新的参数Table_exists_action,可以一定程度上降低重复数据的产生。该参数用来控制如果要导入的表对象存在,执行什么操作。有以下几个参数值:
1) SKIP : 跳过该表,继续处理下一个对象。该参数默认就是SKIP。值得注意的是,如果你同时指定了CONTENT参数为Data_only的话,SKIP参数无效,默认为APPEND。
2) APPEND : 向现有的表中添加数据。
3) TRUNCATE : TRUNCATE当前表,然后再添加记录。使用这个参数需要谨慎,除非确认当前表中的数据确实无用。否则可能造成数据丢失。
4) REPLACE : 删除并重建表对象,然后再向其中添加数据。值得注意的是,如果同时指定了CONTENT参数为Data_only的话,REPLACE参数无效。
八、重定义表的Schema或表空间
我们还可能会遇到这样的需求,把A用户的对象转移到B用户,或者更换数据的表空间。数据泵通过 Remap_Schema和Remap_tablespace参数实现了该功能。
1) REMAP_SCHEMA : 重定义对象所属Schema
该参数的作用类似IMP中的Fromuser+Touser,支持多个Schema的转换,语法如下:
REMAP_SCHEMA=Source_schema:Target_schema[,Source_schema:Target_schema]
如 把A的对象转换到C用户,将C转换到D用户。Remap_schema=a:b,c:d
Warning: 不能在同一个IMPDP命令中指定remap_schema=a:b,a:c.
2) REMAP_TABLESPACE : 重定义对象所在的表空间。
该参数用来重映射导入对象存储的表空间,支持同时对多个表空间进行转换,相互间用逗号分割。语法如下:
REMAP_TABLESPACE=Source_tablespace:Target_tablespace[,Source_tablespace:Target_tablespace]
Warning: 如果使用Remap_tablespace参数,则要保证导入的用户对目标表空间有读写权限。
九、优化导入/导出效率
1) 对于导出的parallel
对于导出来说,由于dump文件只能由一个线程进行操作(包括I/O处理),因此如果输出的DUMP文件只有一个,即使你指定再多的并行,实际工作仍然是一个,而且还会触发ORA-39095错误。因此,建议设置该参数小于或等于生成的DUMP文件数量。那么,如何控制生成的DUMP文件数量呢?
EXPDP 命令提供了一个FILESIZE参数,用来指定单个DUMP文件的最大容量,要有效的利用parallel参数,filesize参数必不可少。
举例:某用户对象占用了4G左右的空间,实际导出后的DUMP文件约为3G,我们尝试在导出该用户时指定并行度为4,设置单个文件不超过500M,则语法如下:
$ expdp user/pwd directory=dump_file dumpfile=expdp_20100820_%U.dmp logfile=expdp_20100820.log filesize=500M parallel=4
2) 对于导入的parallel
对于导入来说,使用parallel参数则要简单的多,我认为导入更能体现parallel参数的优势。 参数设置为几,则认为同时将几张表的内容导入到库中。
举例:某dmp文件中包含了200张表,我们尝试在导入该DMP文件时指定并行度为10,则 语法如下:
$ impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp logfile=impdp_20100820.log parallel=10
只导入数据,不导入索引等
impdp system/oracle directory=dmp dumpfile=itsms_%U.dmp logfile=impitsms2.log parallel=4 remap_schema=itsms:itfw TABLE_EXISTS_ACTION=APPEND CONTENT=data_only
如何进入交互模式
在这里,我正在执行导入,我想进入交互模式,查看导入的状态。进入交互模式有两种方式,操作步骤如下:
i 使用Ctrl+C退出当前模式
ii 在命令行模式下,执行Expdp/Impdp命令,同时指定attach参数连接到当前正在制定的导入/导出任务。如:
expdp bam/bam attach=SYS_IMPORT_FULL_01
Warning:如果没有指定Attach参数,则默认进入当前正在运行的任务。不过如果当前没有正在指定的任务,而且也没有给Attach赋值,那么就会报Ora-31626错误。
当命令行进入交互模式后,会显示如下界面:
Export>
交互模式的操作
在交互模式中,支持下面几种操作。
i 查看JOB的运行状态
Export> status
ii 回退到命令行
Export> continue_client
iii 增加并行
Export> parallel=4
Warning: 在使用导出时,不能直接指定parallel参数,否则可能会遇到ORA-39095错误,因为如果要并行导出,则必须指定多个导出文件,这里的并行导出是指,多个线程同时工作,同时从数据库中导出多个dmp文件来。
iv 停止JOB
Export> stop_job
v 启动JOB
Export> start_job
vi 杀掉JOB
Export> kill_job
vii 退出交互模式
Export> exit_client
viii 指定文件大小
Export> filesize=1G
ix 帮助
Export> Help
JOB_NAME
指定要导出作用的名称,默认为SYS_XXX
JOB_NAME=jobname_string
SELECT * FROM DBA_DATAPUMP_JOBS;--查看存在的job
========================================================================================================
EXPDP参数说明
------------------------------------------------------------------------------
以下是可用关键字和它们的说明。方括号中列出的是默认值。
ATTACH
连接到现有作业。
例如, ATTACH=job_name。
CLUSTER
利用集群资源并将 worker 进程分布在 Oracle RAC 上。
有效的关键字值为: [Y] 和 N。
COMPRESSION
减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。
CONTENT
指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS
数据层选项标记。
有效的关键字值为: XML_CLOBS。
DIRECTORY
用于转储文件和日志文件的目录对象。
DUMPFILE
指定目标转储文件名的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION
加密某个转储文件的一部分或全部。
有效的关键字值为: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE。
ENCRYPTION_ALGORITHM
指定加密的方式。
有效的关键字值为: [AES128], AES192 和 AES256。
ENCRYPTION_MODE
生成加密密钥的方法。
有效的关键字值为: DUAL, PASSWORD 和 [TRANSPARENT]。
ENCRYPTION_PASSWORD
用于在转储文件中创建加密数据的口令密钥。
ESTIMATE
计算作业估计值。
有效的关键字值为: [BLOCKS] 和 STATISTICS。
ESTIMATE_ONLY
计算作业估计值而不执行导出。
EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。
FILESIZE
以字节为单位指定每个转储文件的大小。
FLASHBACK_SCN
用于重置会话快照的 SCN。
FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。
FULL
导出整个数据库 [N]。
HELP
显示帮助消息 [N]。
INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。
JOB_NAME
要创建的导出作业的名称。
LOGFILE
指定日志文件名 [export.log]。
NETWORK_LINK
源系统的远程数据库链接的名称。
NOLOGFILE
不写入日志文件 [N]。
PARALLEL
更改当前作业的活动 worker 的数量。
PARFILE
指定参数文件名。
QUERY
用于导出表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。
REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。
SAMPLE
要导出的数据的百分比。
SCHEMAS
要导出的方案的列表 [登录方案]。
SERVICE_NAME
约束 Oracle RAC 资源的活动服务名和关联资源组。
SOURCE_EDITION
用于提取元数据的版本。
STATUS
监视作业状态的频率, 其中默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
TABLES
标识要导出的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
TABLESPACES
标识要导出的表空间的列表。
TRANSPORTABLE
指定是否可以使用可传输方法。
有效的关键字值为: ALWAYS 和 [NEVER]。
TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。
TRANSPORT_TABLESPACES
要从中卸载元数据的表空间的列表。
VERSION
要导出的对象版本。
有效的关键字值为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允许使用缩写。
ADD_FILE
将转储文件添加到转储文件集。
CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT
退出客户机会话并使作业保持运行状态。
FILESIZE
用于后续 ADD_FILE 命令的默认文件大小 (字节)。
HELP
汇总交互命令。
KILL_JOB
分离并删除作业。
PARALLEL
更改当前作业的活动 worker 的数量。
REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。
START_JOB
启动或恢复当前作业。
有效的关键字值为: SKIP_CURRENT。
STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字值为: IMMEDIATE。
IMPDP参数说明
------------------------------------------------------------------------------
以下是可用关键字和它们的说明。方括号中列出的是默认值。
ATTACH
连接到现有作业。
例如, ATTACH=job_name。
CLUSTER
利用集群资源并将 worker 进程分布在 Oracle RAC 上。
有效的关键字值为: [Y] 和 N。
CONTENT
指定要加载的数据。
有效的关键字为: [ALL], DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS
数据层选项标记。
有效的关键字为: SKIP_CONSTRAINT_ERRORS。
DIRECTORY
用于转储文件, 日志文件和 SQL 文件的目录对象。
DUMPFILE
要从中导入的转储文件的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD
用于访问转储文件中的加密数据的口令密钥。
对于网络导入作业无效。
ESTIMATE
计算作业估计值。
有效的关键字为: [BLOCKS] 和 STATISTICS。
EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。
FLASHBACK_SCN
用于重置会话快照的 SCN。
FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。
FULL
导入源中的所有对象 [Y]。
HELP
显示帮助消息 [N]。
INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。
JOB_NAME
要创建的导入作业的名称。
LOGFILE
日志文件名 [import.log]。
NETWORK_LINK
源系统的远程数据库链接的名称。
NOLOGFILE
不写入日志文件 [N]。
PARALLEL
更改当前作业的活动 worker 的数量。
PARFILE
指定参数文件。
PARTITION_OPTIONS
指定应如何转换分区。
有效的关键字为: DEPARTITION, MERGE 和 [NONE]。
QUERY
用于导入表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。
REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REMAP_DATAFILE
在所有 DDL 语句中重新定义数据文件引用。
REMAP_SCHEMA
将一个方案中的对象加载到另一个方案。
REMAP_TABLE
将表名重新映射到另一个表。
例如, REMAP_TABLE=HR.EMPLOYEES:EMPS。
REMAP_TABLESPACE
将表空间对象重新映射到另一个表空间。
REUSE_DATAFILES
如果表空间已存在, 则将其初始化 [N]。
SCHEMAS
要导入的方案的列表。
SERVICE_NAME
约束 Oracle RAC 资源的活动服务名和关联资源组。
SKIP_UNUSABLE_INDEXES
跳过设置为“索引不可用”状态的索引。
SOURCE_EDITION
用于提取元数据的版本。
SQLFILE
将所有的 SQL DDL 写入指定的文件。
STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
STREAMS_CONFIGURATION
启用流元数据的加载
TABLE_EXISTS_ACTION
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。
TABLES
标识要导入的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
TABLESPACES
标识要导入的表空间的列表。
TARGET_EDITION
用于加载元数据的版本。
TRANSFORM
要应用于适用对象的元数据转换。
有效的关键字为: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。
TRANSPORTABLE
用于选择可传输数据移动的选项。
有效的关键字为: ALWAYS 和 [NEVER]。
仅在 NETWORK_LINK 模式导入操作中有效。
TRANSPORT_DATAFILES
按可传输模式导入的数据文件的列表。
TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。
TRANSPORT_TABLESPACES
要从中加载元数据的表空间的列表。
仅在 NETWORK_LINK 模式导入操作中有效。
VERSION
要导入的对象的版本。
有效的关键字为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
仅对 NETWORK_LINK 和 SQLFILE 有效。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允许使用缩写。
CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT
退出客户机会话并使作业保持运行状态。
HELP
汇总交互命令。
KILL_JOB
分离并删除作业。
PARALLEL
更改当前作业的活动 worker 的数量。
START_JOB
启动或恢复当前作业。
有效的关键字为: SKIP_CURRENT。
STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字为: IMMEDIATE。
文章名称:EXPDP/IMPDP整理
网页网址:http://scyanting.com/article/pchcjp.html
2018/1/7 21:15:50
迁移用户
注意:用户下物化视图不能自动导入
先说数据泵提供的主要特性(包括,但不限于):
1. 支持并行处理导入、导出任务
2. 支持暂停和重启动导入、导出任务
3. 支持通过Database Link的方式导出或导入远端数据库中的对象
4. 支持在导入时通过Remap_schema、Remap_datafile、Remap_tablespace几个参数实现导入过程中自动修改对象属主、 数据文件或数据所在表空间。
5. 导入/导出时提供了非常细粒度的对象控制。通过Include、Exclude两个参数,甚至可以详细制定是否包含或不包含某个对象。
除了使用network_link参数外,expdp生成的文件都是在服务器上(Directory指定的位置)
使用EXPDP和IMPDP时应该注意的事项:
EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。
EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。
expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dmp;
一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
SQL>
sqlplus / as sysdba
create directory dmp as '/dmp';
二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)
select * from dba_directories;
三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dmp to scott;
四、导出数据
1)按用户导
如导出到一个文件,并行度加了没用,如同时导出到多个文件,可用。
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp logfile=empdp_20100820.log DIRECTORY=dmp;
2)并行进程parallel
expdp scott/tiger@orcl directory=dmp dumpfile=scott_%U.dmp parallel=4 cluster=n filesize=30g job_name=scott3
3)按表名导
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dmp;
使用参数文件,参数重复以靠后参数为准
expdp ciqusr63/ciqusr63 dumpfile=ciqusr63_%U.dmp logfile=ciqusr63.log parfile=exptables.par
exptables.par 文件内容
directory=expdp
parallel=8
cluster=n
TABLES=T_ARCHIVE_REC,T_BLACKLIST_CODE,
4)按查询条件导
expdp scott/tiger@orcl directory=dmp dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空间导
expdp system/manager DIRECTORY=dmp DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)导整个数据库(只有拥有dba或者exp_full_database和imp_full_database权限的用户才能执行。)
expdp system/manager DIRECTORY=dmp DUMPFILE=full.dmp FULL=y;
7)传输表空间模式
对应impdp/expdp中的Transport_tablespaces参数。这种模式与前面几种模式最显著的区别是生成的Dump文件中并不包含具体的逻辑数据,而只导出相关对象的元数据(即对象的定义,可以理解成表的创建语句),逻辑数据仍然在表空间的数据文件中,导出时需要将元数据和数据文件同时复制到目标端服务器。
这种导出方式效率很高,时间开销主要是花在复制数据文件产生的I/O上。expdp执行传输表空间模式的导出,用户必须拥有exp_full_database角色或者DBA角色。而通过传输表空间模式导入时,用户必须拥有imp_full_database角色或者DBA角色。
8)通过dblink导出数据
network_link模式.当数据文件比较大的时候,这时候在目标库上直接通过network_link模式在目标库上进行导入,而不需要在源库上进行expdp操作,处理方式和正常的expdp/impdmp过程类似。这样做的好处主要是可以避免了在源库上写大文件,然后还需要移动到目标库上.
SQL> grant datapump_exp_full_database to frank;
目标库
sql> create database link frank connect to frank identified by frank using 'frank';
impdp \'/ as sysdba\' network_link=frank schemas=frank
network_link 定义了一个db_link名称,该过程把源端的frank schemas导入到目标库上.
9) 过滤数据
过滤数据主要依赖于Query和Sample两个参数。其中Sample参数主要针对expdp导出功能。
1. Query
与exp命令中的Query功能类似,不过Expdp中,该参数功能得到了增强,控制的粒度更细。Expdp中的Query也是指定类似where语句来限定记录。语法如下:
Query = [Schema.][Table_name:] Query_clause
默认 情况如果不指定Schema.table_name,则Query_clause针对所有导出的表有效,或者你可以为每一个表指定不同的Query_clause,如:导出a表中所有id<5的记录,导出b表中所有name=’a’的记录,则Query的参数应该如下:
Query=A:”Where id<5″,B:”Where name=’a’”
如果Where条件前没有指定Schema名或者表名的话,默认就是针对当前所有要被导出的表。如:Query=Where id <5
Warning: 建议把Query参数放入到参数文件中使用,以避免转义符带来的麻烦。
2. Sample
该参数用来指定导出数据的百分比,可指定的值的范围从0.000001到99.999999,语法如下:
Sample=[[Schema_name.]Table_name:]sample_percent
指定该参数以后,EXPDP导出将自动控制导出的记录量,如导出A表中50%的记录,设置的Sample参数如下:
Sample=A:50
Warning: Sample_percent指定的值只是一个参考值,EXPDP会根据数据量算出一个近似值。
10)过滤对象
过滤对象主要依赖于Include和Exclude两个参数。这两个参数作用正好相反,在这两个参数中,可以指定你知道的任何对象类型(如:Package、Procedure、Table等等)或者对象名称(支持通配符)
1. Exclude 反规则
指定不被包含的对象类型或者对象名称。指定了该参数以后,指定的对象类型对应的所有对象都不会被导入或导出。如果被排除的对象有依赖的对象,那么其依赖的对象也不会被导入或导出。如:通过Exclude参数指定不导出表对象的话,不仅指定的表不会被导出,连这些表关联的Index、Check等都不会被导出。Warning: 建议把Exclude参数放入到参数文件中使用,以避免转义符带来的麻烦。
2. Include 正规则
与Exclude正好相反。指定包含的对象类型或者对象名称。
Warning: 由于两个参数功能正好相反,因此在执行导入或导出命令时,两个参数不能同时使用,否则Oracle也不知道你想要干什么啦。
exclude/include参数用法:
EXCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] -->排出特定对象
INCLUDE=[object_type]:[name_clause],[object_type]:[name_clause] -->包含特定对象
object_type子句用于指定对象的类型,如table,sequence,view,procedure,package等等
name_clause子句可以为SQL表达式用于过滤特定的对象名字。SQL操作符以及对象名(可使用通配符)来过滤指定对象类型中的特定对象。
当未指定name_clause而仅仅指定object_type则所有该类型的对象都将被过滤或筛选。多个[object_type]:[name_clause]中间以逗号分割。
示例:
expdp SCHEMAS=scott EXCLUDE=SEQUENCE,TABLE:"IN ('EMP','DEPT')"
impdp SCHEMAS=scott INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"
常用的过滤SQL表达式
EXCLUDE=SEQUENCE,VIEW --过滤所有的SEQUENCE,VIEW
EXCLUDE=TABLE:"IN ('EMP','DEPT')" --过滤表对象EMP,DEPT
EXCLUDE=SEQUENCE,VIEW,TABLE:"IN ('EMP','DEPT')" --过滤所有的SEQUENCE,VIEW以及表对象EMP,DEPT
EXCLUDE=INDEX:"= 'INDX_NAME'" --过滤指定的索引对象INDX_NAME
INCLUDE=PROCEDURE:"LIKE 'PROC_U%'" --包含以PROC_U开头的所有存储过程(_ 符号代表任意单个字符)
INCLUDE=TABLE:"> 'E' " --包含大于字符E的所有表对象
其它常用操作符 NOT IN, NOT LIKE, <, != 等等
============================================================
常用参数:
对导出DMP进行压缩:compression=all;耗时长4倍,空间没压多少
统计操作时间:操作前加time;
===============================================================================================================
五、还原数据
在目标库上创建表空间,创建相关的用户;
也可不创建用户,IMPDP会自动创建用户.(条件:导出导入用dba身份,默认表空间存在)
1)导到指定用户下(测试表明,不指定schema,则导入到原用户下;)
impdp scott/tiger DIRECTORY=dmp DUMPFILE=scott_%U.dmp logfile=impscott.log SCHEMAS=scott;
导入时刻用并行度,但不能超过cpu数两倍。
impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp logfile=impdp_20100820.log parallel=10
2)改变表的owner,导出到不同用户下,必须用remap_schema,否则默认导入到原用户下;
impdp system/manager DIRECTORY=dmp DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dmp DUMPFILE=tablespace.dmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加数据(TABLE_EXISTS_ACTION 参数可等同于APPEND,REPLACE,TRUNCATE)
impdp system/manager DIRECTORY=dmp DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION=append
通过dblink,直接导入数据;但是目标表不能有数据;在需要恢复端执行,dblink为连接到原端的;
oracle@s10ogg:~> impdp gg/gg@s10ogg job_name=s10ggdmp tables=tcustmer content=data_only network_link='s10pub';
只导入用户下对象的元数据
impdp bys/bys schemas=bys directory=dmp file=bys5.dmp logfile=bys6.log content=metadata_only
只导入用户下对象的数据
impdp bys/bys schemas=bys directory=dmp file=bys5.dmp logfile=bys7.log content=data_only
导入用户下所有对象及数据: --不写content=,默认就是ALL
impdp bys/bys schemas=bys directory=dmp file=bys5.dmp logfile=bys8.log
================================================================================================
六、转移符
命令行下转义符的处理
Windows平台:
D:\> expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\"IN ('EMP', 'DEPT')\"
在Windows平台下,需要对象双引号进行转义,使用转义符\
Unix平台:
在未使用parfile文件的情形下,所有的符号都需要进行转义,包括括号,双引号,单引号等
expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\"IN \(\'EMP\', \'DEP\'\)\"
七、高级过滤
在导出/导入的时候,我们常常有这样的需求,只想导出/导入表结构,或者只想导出/导入数据。幸运的是数据泵也提供了该功能。使用 Content参数。该参数有三个属性
1) ALL : 导出/导入对象定义和数据,该参数的默认值就是ALL
2) DATA_ONLY : 只导出/导入数据。
3) METADATA_ONLY : 只导出/导入对象定义。
Warning: 有一点值得注意的时,在执行导出的时候,如果使用了高级过滤,如只导出了数据,那么导入时,需要确保数据定义已经存在。否则数据都变成没有主子了。如果数据定义已经存在,导入时最好指定data_only,否则会触发ORA-39151错误,因为对象已经存在了。
过滤已经存在的数据
我们知道,导入的表对象在目标库中已经存在,并且目标端没有创建数据完整性约束条件(RI)来检验数据的话,就有可能造成数据被重复导入。数据泵提供了一个新的参数Table_exists_action,可以一定程度上降低重复数据的产生。该参数用来控制如果要导入的表对象存在,执行什么操作。有以下几个参数值:
1) SKIP : 跳过该表,继续处理下一个对象。该参数默认就是SKIP。值得注意的是,如果你同时指定了CONTENT参数为Data_only的话,SKIP参数无效,默认为APPEND。
2) APPEND : 向现有的表中添加数据。
3) TRUNCATE : TRUNCATE当前表,然后再添加记录。使用这个参数需要谨慎,除非确认当前表中的数据确实无用。否则可能造成数据丢失。
4) REPLACE : 删除并重建表对象,然后再向其中添加数据。值得注意的是,如果同时指定了CONTENT参数为Data_only的话,REPLACE参数无效。
八、重定义表的Schema或表空间
我们还可能会遇到这样的需求,把A用户的对象转移到B用户,或者更换数据的表空间。数据泵通过 Remap_Schema和Remap_tablespace参数实现了该功能。
1) REMAP_SCHEMA : 重定义对象所属Schema
该参数的作用类似IMP中的Fromuser+Touser,支持多个Schema的转换,语法如下:
REMAP_SCHEMA=Source_schema:Target_schema[,Source_schema:Target_schema]
如 把A的对象转换到C用户,将C转换到D用户。Remap_schema=a:b,c:d
Warning: 不能在同一个IMPDP命令中指定remap_schema=a:b,a:c.
2) REMAP_TABLESPACE : 重定义对象所在的表空间。
该参数用来重映射导入对象存储的表空间,支持同时对多个表空间进行转换,相互间用逗号分割。语法如下:
REMAP_TABLESPACE=Source_tablespace:Target_tablespace[,Source_tablespace:Target_tablespace]
Warning: 如果使用Remap_tablespace参数,则要保证导入的用户对目标表空间有读写权限。
九、优化导入/导出效率
1) 对于导出的parallel
对于导出来说,由于dump文件只能由一个线程进行操作(包括I/O处理),因此如果输出的DUMP文件只有一个,即使你指定再多的并行,实际工作仍然是一个,而且还会触发ORA-39095错误。因此,建议设置该参数小于或等于生成的DUMP文件数量。那么,如何控制生成的DUMP文件数量呢?
EXPDP 命令提供了一个FILESIZE参数,用来指定单个DUMP文件的最大容量,要有效的利用parallel参数,filesize参数必不可少。
举例:某用户对象占用了4G左右的空间,实际导出后的DUMP文件约为3G,我们尝试在导出该用户时指定并行度为4,设置单个文件不超过500M,则语法如下:
$ expdp user/pwd directory=dump_file dumpfile=expdp_20100820_%U.dmp logfile=expdp_20100820.log filesize=500M parallel=4
2) 对于导入的parallel
对于导入来说,使用parallel参数则要简单的多,我认为导入更能体现parallel参数的优势。 参数设置为几,则认为同时将几张表的内容导入到库中。
举例:某dmp文件中包含了200张表,我们尝试在导入该DMP文件时指定并行度为10,则 语法如下:
$ impdp user/pwd directory=dump_file dumpfile=expdp_20100820.dmp logfile=impdp_20100820.log parallel=10
只导入数据,不导入索引等
impdp system/oracle directory=dmp dumpfile=itsms_%U.dmp logfile=impitsms2.log parallel=4 remap_schema=itsms:itfw TABLE_EXISTS_ACTION=APPEND CONTENT=data_only
如何进入交互模式
在这里,我正在执行导入,我想进入交互模式,查看导入的状态。进入交互模式有两种方式,操作步骤如下:
i 使用Ctrl+C退出当前模式
ii 在命令行模式下,执行Expdp/Impdp命令,同时指定attach参数连接到当前正在制定的导入/导出任务。如:
expdp bam/bam attach=SYS_IMPORT_FULL_01
Warning:如果没有指定Attach参数,则默认进入当前正在运行的任务。不过如果当前没有正在指定的任务,而且也没有给Attach赋值,那么就会报Ora-31626错误。
当命令行进入交互模式后,会显示如下界面:
Export>
交互模式的操作
在交互模式中,支持下面几种操作。
i 查看JOB的运行状态
Export> status
ii 回退到命令行
Export> continue_client
iii 增加并行
Export> parallel=4
Warning: 在使用导出时,不能直接指定parallel参数,否则可能会遇到ORA-39095错误,因为如果要并行导出,则必须指定多个导出文件,这里的并行导出是指,多个线程同时工作,同时从数据库中导出多个dmp文件来。
iv 停止JOB
Export> stop_job
v 启动JOB
Export> start_job
vi 杀掉JOB
Export> kill_job
vii 退出交互模式
Export> exit_client
viii 指定文件大小
Export> filesize=1G
ix 帮助
Export> Help
JOB_NAME
指定要导出作用的名称,默认为SYS_XXX
JOB_NAME=jobname_string
SELECT * FROM DBA_DATAPUMP_JOBS;--查看存在的job
========================================================================================================
EXPDP参数说明
------------------------------------------------------------------------------
以下是可用关键字和它们的说明。方括号中列出的是默认值。
ATTACH
连接到现有作业。
例如, ATTACH=job_name。
CLUSTER
利用集群资源并将 worker 进程分布在 Oracle RAC 上。
有效的关键字值为: [Y] 和 N。
COMPRESSION
减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。
CONTENT
指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS
数据层选项标记。
有效的关键字值为: XML_CLOBS。
DIRECTORY
用于转储文件和日志文件的目录对象。
DUMPFILE
指定目标转储文件名的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION
加密某个转储文件的一部分或全部。
有效的关键字值为: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE。
ENCRYPTION_ALGORITHM
指定加密的方式。
有效的关键字值为: [AES128], AES192 和 AES256。
ENCRYPTION_MODE
生成加密密钥的方法。
有效的关键字值为: DUAL, PASSWORD 和 [TRANSPARENT]。
ENCRYPTION_PASSWORD
用于在转储文件中创建加密数据的口令密钥。
ESTIMATE
计算作业估计值。
有效的关键字值为: [BLOCKS] 和 STATISTICS。
ESTIMATE_ONLY
计算作业估计值而不执行导出。
EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。
FILESIZE
以字节为单位指定每个转储文件的大小。
FLASHBACK_SCN
用于重置会话快照的 SCN。
FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。
FULL
导出整个数据库 [N]。
HELP
显示帮助消息 [N]。
INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。
JOB_NAME
要创建的导出作业的名称。
LOGFILE
指定日志文件名 [export.log]。
NETWORK_LINK
源系统的远程数据库链接的名称。
NOLOGFILE
不写入日志文件 [N]。
PARALLEL
更改当前作业的活动 worker 的数量。
PARFILE
指定参数文件名。
QUERY
用于导出表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。
REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。
SAMPLE
要导出的数据的百分比。
SCHEMAS
要导出的方案的列表 [登录方案]。
SERVICE_NAME
约束 Oracle RAC 资源的活动服务名和关联资源组。
SOURCE_EDITION
用于提取元数据的版本。
STATUS
监视作业状态的频率, 其中默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
TABLES
标识要导出的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
TABLESPACES
标识要导出的表空间的列表。
TRANSPORTABLE
指定是否可以使用可传输方法。
有效的关键字值为: ALWAYS 和 [NEVER]。
TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。
TRANSPORT_TABLESPACES
要从中卸载元数据的表空间的列表。
VERSION
要导出的对象版本。
有效的关键字值为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允许使用缩写。
ADD_FILE
将转储文件添加到转储文件集。
CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT
退出客户机会话并使作业保持运行状态。
FILESIZE
用于后续 ADD_FILE 命令的默认文件大小 (字节)。
HELP
汇总交互命令。
KILL_JOB
分离并删除作业。
PARALLEL
更改当前作业的活动 worker 的数量。
REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。
START_JOB
启动或恢复当前作业。
有效的关键字值为: SKIP_CURRENT。
STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字值为: IMMEDIATE。
IMPDP参数说明
------------------------------------------------------------------------------
以下是可用关键字和它们的说明。方括号中列出的是默认值。
ATTACH
连接到现有作业。
例如, ATTACH=job_name。
CLUSTER
利用集群资源并将 worker 进程分布在 Oracle RAC 上。
有效的关键字值为: [Y] 和 N。
CONTENT
指定要加载的数据。
有效的关键字为: [ALL], DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS
数据层选项标记。
有效的关键字为: SKIP_CONSTRAINT_ERRORS。
DIRECTORY
用于转储文件, 日志文件和 SQL 文件的目录对象。
DUMPFILE
要从中导入的转储文件的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD
用于访问转储文件中的加密数据的口令密钥。
对于网络导入作业无效。
ESTIMATE
计算作业估计值。
有效的关键字为: [BLOCKS] 和 STATISTICS。
EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。
FLASHBACK_SCN
用于重置会话快照的 SCN。
FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。
FULL
导入源中的所有对象 [Y]。
HELP
显示帮助消息 [N]。
INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。
JOB_NAME
要创建的导入作业的名称。
LOGFILE
日志文件名 [import.log]。
NETWORK_LINK
源系统的远程数据库链接的名称。
NOLOGFILE
不写入日志文件 [N]。
PARALLEL
更改当前作业的活动 worker 的数量。
PARFILE
指定参数文件。
PARTITION_OPTIONS
指定应如何转换分区。
有效的关键字为: DEPARTITION, MERGE 和 [NONE]。
QUERY
用于导入表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。
REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REMAP_DATAFILE
在所有 DDL 语句中重新定义数据文件引用。
REMAP_SCHEMA
将一个方案中的对象加载到另一个方案。
REMAP_TABLE
将表名重新映射到另一个表。
例如, REMAP_TABLE=HR.EMPLOYEES:EMPS。
REMAP_TABLESPACE
将表空间对象重新映射到另一个表空间。
REUSE_DATAFILES
如果表空间已存在, 则将其初始化 [N]。
SCHEMAS
要导入的方案的列表。
SERVICE_NAME
约束 Oracle RAC 资源的活动服务名和关联资源组。
SKIP_UNUSABLE_INDEXES
跳过设置为“索引不可用”状态的索引。
SOURCE_EDITION
用于提取元数据的版本。
SQLFILE
将所有的 SQL DDL 写入指定的文件。
STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
STREAMS_CONFIGURATION
启用流元数据的加载
TABLE_EXISTS_ACTION
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。
TABLES
标识要导入的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
TABLESPACES
标识要导入的表空间的列表。
TARGET_EDITION
用于加载元数据的版本。
TRANSFORM
要应用于适用对象的元数据转换。
有效的关键字为: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。
TRANSPORTABLE
用于选择可传输数据移动的选项。
有效的关键字为: ALWAYS 和 [NEVER]。
仅在 NETWORK_LINK 模式导入操作中有效。
TRANSPORT_DATAFILES
按可传输模式导入的数据文件的列表。
TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。
TRANSPORT_TABLESPACES
要从中加载元数据的表空间的列表。
仅在 NETWORK_LINK 模式导入操作中有效。
VERSION
要导入的对象的版本。
有效的关键字为: [COMPATIBLE], LATEST 或任何有效的数据库版本。
仅对 NETWORK_LINK 和 SQLFILE 有效。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允许使用缩写。
CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT
退出客户机会话并使作业保持运行状态。
HELP
汇总交互命令。
KILL_JOB
分离并删除作业。
PARALLEL
更改当前作业的活动 worker 的数量。
START_JOB
启动或恢复当前作业。
有效的关键字为: SKIP_CURRENT。
STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。
STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字为: IMMEDIATE。
文章名称:EXPDP/IMPDP整理
网页网址:http://scyanting.com/article/pchcjp.html