oracle10g新工具expdp,impdp 收藏
来源:http://lzfhope.blog.163.com/blog/static/63639922008394255736/
一,expdp
1.1 命令行下expdp的解释
在命令行下输入expdp help=y 就会出现如下的说明,如果了解exp,那么一些参数还是可以看懂的。
Export: Release 10.2.0.1.0 - Production on 星期三, 09 4月, 2008 14:31:55
Copyright (c) 2003, 2005, Oracle. All rights reserved.
数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:
示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
您可以控制导出的运行方式。具体方法是: 在 'expdp' 命令后输入
各种参数。要指定各参数, 请使用关键字:
格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明 (默认)
------------------------------------------------------------------------------
ATTACH 连接到现有作业, 例如 ATTACH [=作业名]。
COMPRESSION 减小有效的转储文件内容的大小
关键字值为: (METADATA_ONLY) 和 NONE。
CONTENT 指定要卸载的数据, 其中有效关键字为:
(ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY 供转储文件和日志文件使用的目录对象。
DUMPFILE 目标转储文件 (expdat.dmp) 的列表,
例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD 用于创建加密列数据的口令关键字。
ESTIMATE 计算作业估计值, 其中有效关键字为:
(BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY 在不执行导出的情况下计算作业估计值。
EXCLUDE 排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。
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 用于导出表的子集的谓词子句。
SAMPLE 要导出的数据的百分比;
SCHEMAS 要导出的方案的列表 (登录方案)。
STATUS 在默认值 (0) 将显示可用时的新状态的情况下,
要监视的频率 (以秒计) 作业状态。
TABLES 标识要导出的表的列表 - 只有一个方案。
TABLESPACES 标识要导出的表空间的列表。
TRANSPORT_FULL_CHECK 验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。
VERSION 要导出的对象的版本, 其中有效关键字为:
(COMPATIBLE), LATEST 或任何有效的数据库版本。
下列命令在交互模式下有效(使用ctrl+c却换到交互模式下)。
注: 允许使用缩写
命令 说明
------------------------------------------------------------------------------
ADD_FILE 向转储文件集中添加转储文件。
CONTINUE_CLIENT 返回到记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT 退出客户机会话并使作业处于运行状态。
FILESIZE 后续 ADD_FILE 命令的默认文件大小 (字节)。
HELP 总结交互命令。
KILL_JOB 分离和删除作业。
PARALLEL 更改当前作业的活动 worker 的数目。
PARALLEL=<worker 的数目>。
START_JOB 启动/恢复当前作业。
STATUS 在默认值 (0) 将显示可用时的新状态的情况下,
要监视的频率 (以秒计) 作业状态。
STATUS[=interval]
STOP_JOB 顺序关闭执行的作业并退出客户机。
STOP_JOB=IMMEDIATE 将立即关闭
数据泵作业。
1.2 参数详细介绍
仅仅由expdp自己产生的简单介绍,那是远远不够的.
1.2.1 attach
格式 :ATTACH [=[schema_name.]job_name]
作用:把客户端会话连接到现存的任务,并且自动地让命令处于交互模式,然后会给出连接的任务的描述,同时也给出导出的提示。
说明:shema_name模式名称是可选的,等同于export中的owner,如果不是登录用户,则必须要求登录用户有exp_full_database的角色。只要有一个export任务和现存的模式有关,并且该任务是活动的,那么job_name也是可选的。如果希望把一个已经停止的任务连接上,则必须提供job_name参数。
可以通过视图dba_datapump_jobs和user_datapump_jobs来查看存在的数据泵任务名称。
限制:如果已经使用了该参数,则其它参数不能再用(user/password除外);在其它模式中非执行中的任务是不能连接的;如果任务相关的dump文件集合或者主表已经被删除,那么也会导致失败;对任务主表的任意修改都可能产生不可预测的结果。
例子:expdp test/test@connstr attach=job_name
问题: 如果创建一个datapump job?
1.2.2 compression
格式:compression=(METADATA_ONLY|NONE) ,默认是metadata_only
作用:是否压缩原数据
说明:如上。
限制:无
例子:略
1.2.3 content
格式:CONTENT=(ALL|DATA_ONLY|METADATA_ONLY)
作用:指定要导出的对象范围.
说明:all表示导出所有对象包括原数据和数据,data_only就是仅仅导出表格对象,metadata_only 仅仅导出数据库定义。
限制:不能和参数transport_tablespaces一起使用。
例子:略
1.2.4 DIRECTORY
格式:DIRECTORY=DIRECOTRY_OBJECT
作用:指定导出文件存储的地方包括日志存储的地方。
说明:directory_object 指的是oracle的目录对象,非操作系统目录。如果没有指定该参数则默认是data_pump_dir对象指定的位置。至于data_pump_dir在什么位置,可以查询视图获得:
SQL> select directory_path from dba_directories where directory_name='DATA_PUMP_DIR';
DIRECTORY_PATH
--------------------------------------------------------------------------------
D:\oracle\product\10.2.0\admin\apexcrm\dpdump\
至于目录的创建,可以参考命令create directory。
dumpfile和logfile参数中指定的目录会覆盖这个参数.
限制:无
例子:略
1.2.5 DUMPFILE
格式:DUMPFILE=[DIRECTORY_OBJECT:FILENAME [,...]
作用:指定要存储数据的文件的名称。
说明:这是可选的参数,directory_object也是可选的。可以指定多个文件名称,之间用逗号分隔。如果没有为文件指定扩展名,则默认是dmp.
文件名称可以包含置换变量%U,这表示会产生多个文件。而%U将会在00到99之间,例如文件名称为exp%U_%U.dmp,那么最终产生的文件会是exp00_00.dmp,exp01_01.dmp,一直到exp99_99.dmp(如果有那么多数据的话).
如果设定了filesize 参数,那么这个%U的置换变量就很有用,当一个文件满了之后,就会自动的产生下一个文件爱。
%U也有利于并行执行任务。因为并行的时候,需要多个文件。
虽然可以指定许多的文件参数,但是导出任务并不一定会用到所有的文件。导出任务会在任务末尾显示用到的文件,所以在导入的时候就可以只指定这些用过的文件。
限制:由于不会覆盖现存的文件,所以命名的时候应该注意。
例子:
F:\Temp>expdp test/test@crm93 dumpfile=3.dmp,4.dmp,5.dmp logfile=3.log
Export: Release 10.2.0.1.0 - Production on 星期三, 09 4月, 2008 16:15:52
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "TEST"."SYS_EXPORT_SCHEMA_01": test/********@crm93 dumpfile=3.dmp,4.dmp,5.dmp logfile=3.log
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 KB
处理对象类型 SCHEMA_EXPORT/USER
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
. . 导出了 "TEST"."MYVIEWS" 104 KB 3670 行
已成功加载/卸载了主表 "TEST"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
TEST.SYS_EXPORT_SCHEMA_01 的转储文件集为:
D:\ORACLE\PRODUCT\10.2.0\ADMIN\CRMII\DPDUMP\3.DMP
作业 "TEST"."SYS_EXPORT_SCHEMA_01" 已于 16:14:19 成功完成
从上面这个例子可以看出,dumpfile指定了三个文件,但是最终只有使用一个.到服务器上看也是如此,只有3.dmp文件是有数据de,,其它两个只有基础的格式信息.
例子2:使用%U
F:\Temp>expdp test/test@crm93 dumpfile=LZF%U.DMP content=data_only
Export: Release 10.2.0.1.0 - Production on 星期三, 09 4月, 2008 16:22:02
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "TEST"."SYS_EXPORT_SCHEMA_01": test/********@crm93 dumpfile=LZF%U.DMP content=data_only
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 KB
. . 导出了 "TEST"."MYVIEWS" 104 KB 3670 行
已成功加载/卸载了主表 "TEST"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
TEST.SYS_EXPORT_SCHEMA_01 的转储文件集为:
D:\ORACLE\PRODUCT\10.2.0\ADMIN\CRMII\DPDUMP\LZF01.DMP
作业 "TEST"."SYS_EXPORT_SCHEMA_01" 已于 16:20:10 成功完成
不巧的是,无法在服务器之外的设备上存储文件,举例来说,在windows下使用虚拟目录也是不行的.
1.2.6 ENCRYPTION_PASSWORD
格式:encryption_password=password
作用:设定一个用于加密表格数据的密码,可以对数据加密
说明: 必须同时设置透明的数据加密,这个选项才有效,有关内容参考oracle database advanced security administrator's guide .
限制:只对有加密的列其作用。本工具不提供对整个文件的加密。
通过网络的方式导出数据时,加密不起作用。对应的表格被跳过,并且显示错误信息,但是任务还是会继续进行。
原表的列加密属性和目的表的加密属性不一致,也会导致失败。
例子:略
1.2.7 ESTIMATE
格式:ESTIMATE={BLOCKS|STATISTICS}
作用:估计每个表格需要消耗多少的磁盘空间(以字节为单位).在日志和屏幕输出中都会体现出来.估计只是针对表格。
说明:参数为BLOCKS表示使用对象包含的数据块来计算,STATISTICS则表示使用统计数据来计算,所以用这个之前最好先执行analyze 函数.譬如 analyze table myviews compute statistics;
限制:如果存在压缩表,那么使用参数blocks的估计可能不准确,所以存在这种情况最好用statistics
例子:略
1.2.8 ESTIMATE_ONLY
格式:ESTIMATE_ONLY={Y|N}
作用:仅仅估计大小,但是不导出.
说明:如果不指定估计的方式,则默认用BLOCKS的方式,所以可以通过参数estimate=STATISTICS来指定估计方法。
限制:同ESTIMATE
例子:
F:\Temp>expdp test/test@crm93 content=data_only estimate_ONLY=Y ESTIMATE=STATISTICS NOLOGFILE=Y
Export: Release 10.2.0.1.0 - Production on 星期三, 09 4月, 2008 17:10:38
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "TEST"."SYS_EXPORT_SCHEMA_01": test/********@crm93 content=data_only estimate_ONLY=Y ESTIMATE=STATISTICS NOLOGFILE=Y
正在使用 STATISTICS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. 预计为 "TEST"."MYVIEWS" 102.2 KB
使用 STATISTICS 方法的总估计: 102.2 KB
作业 "TEST"."SYS_EXPORT_SCHEMA_01" 已于 17:08:46 成功完成
1.2.9 EXCLUDE (排除)
格式:EXCLUDE=OBJECT_TYPE[:NAME_CLAUSE][,....]
作用:指定不要导出的对象的原数据。
说明:可以一次指定多个对象,或者一类对象,例如包裹,函数等等.
被排除的对象如果存在关联对象,那么关联的对象也不会被导出。例如某个表格被排除了那么相关的索引和触发器也不会被导出。
如果不跟name_cluase则表示排除一类。
name_clause必须是以双引号包起来,用单引号表示字符串,譬如TABLE:" LIKE 'MY%'" 。但是使用name_cluase暂时还内有试验成功的。
有三种需要特别说明的排除对象:constraint,grant,user
CONSTRAINTS
1)NOT NULL 不能被排除
2)需要用于建表的约束,例如iot中的主键,ref列中的ref scope和with rowid约束.这些也是不能被排除.
GRANTS和users
1)exclude=grant排除对象的授权以及系统权限授权.
2)exclude=user只会排除用户的定义,但是不会排除用户对应模式中的对象.
限制:不能和include一起使用,二者是互斥的。
例子: EXCLUDE=TABLE\" LIKE 'TCS%' \" (这是windows下的转义符号,尤其是中文的), 这个语法很混帐.
EXCLUDE=TABLE\" IN ('A','B','C') \"
1.2.10 FILESIZE
格式:FILESIZE=INTEGER[B|K|M|G] ,具体值只能是自然数.
作用:和DUMPFILE中的置换变量(%U)一起使用的时候才是有效的。
说明:用于设置每个文件的最大大小。
限制:最小的文件大小是data pump 块大小的10倍,也就是4k。这通过%U创建的文件就知道了.
例子:略
注意:在试验过程中出现“转储空间耗尽..."的提示,有点不是很明白,其次,每次执行之后都会产生以sys开头的文条件,这有点浪费空间.
1.2.11 FLASHBACK_SCN
格式: FLASHBACK_SCN=scn_value
作用:按照scn (快照号好备份数据)
说明:无
限制:不能和FLASHBACK_TIME一起使用
例子:略
1.2.12 FLASHBACK_TIME
格式:FLASHBACK_TIME="TO_TIMESTAMP(time-value)"
作用:按照快照时间来备份数据
说明:略
限制:同flashback_scn
例子:
DIRECTORY=dpump_dir1
DUMPFILE=hr_time.dmp
FLASHBACK_TIME="TO_TIMESTAMP('25-08-2003 14:35:00', 'DD-MM-YYYY HH24:MI:SS')"
1.2.13 FULL
格式:FULL=[Y|N]
作用:是否全部导出
说明:如果是Y,则必须有EXP_FULL_DATABASE的角色
限制:SYS, ORDSYS, EXFSYS, MDSYS, DMSYS, CTXSYS, ORDPLUGINS, LBACSYS, XDB,
SI_INFORMTN_SCHEMA, DIP, DBSNMP, and WMSYS这些模式的meta_data是不会被导出的。在sys上的授权是永远不会被导出的。
通常不要和其它的例如tables,schemas, 等混合使用。可以和content一起使用.
例子:略。
1.2.14 INCLUDE
格式:INCLUDE = object_type[:name_clause] [, ...]
作用:只导出包含的东西,这和exclude相反
说明:格式同exclude ,可以有多个include语句。可以通过查询DATABASE_EXPORT_OBJECTS, SCHEMA_EXPORT_OBJECTS, and TABLE_EXPORT_OBJECTS.来了解可用的object_type.
限制:不能和exclude混合用。在sys模式上的授权是不能被导出的。
例子: 略。
注意:遗憾的是,同exclude一样,Oracle自己例子中格式并不能执行,总是提示错误,是否是bug?
include=:table" in ('myviews') "
1.2.15 JOB_NAME
格式: job_name=jobname_String
作用:用于设置随后的导出任务,例如当attach参数用于连接一个任务,或者使用dba_datapump_jobs,user_datapump_jobs试图的时候。这个任务名称会成为当前用户模式下的主表的名称。主表用于控制导出任务。
说明:jobname_String最多可以有30个字符。如果要包含空格,则任务名称必须用单引号括起来(例如,'LOST DAY').
默认任务名称是系统产生的,格式为sys_export_<mode>_nn,NN是以01起始的数字串。
限制:无
例子:
F:\Temp>expdp test/test@ilovechina dumpfile=cat.dmp nologfile=y schemas=test job_name=lzf_test_01
Export: Release 10.2.0.1.0 - Production on 星期四, 17 4月, 2008 18:13:39
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "TEST"."LZF_TEST_01": test/********@ilovechina dumpfile=cat.dmp nologfile=y schemas=test job_name=lzf_test_01
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 576 KB
.....
1.2.16 logfile
格式:LOGFILE=[directory_object:]file_name
作用:用于定义日志文件,是可选的。
说明:和dumpfile基本同,但是不能使用%U参数,其次如果存在同名的logfile是会自动覆盖的,而不会提示错误。
限制:无
例子:略
1.2.17 NETWORK_LINK
格式:NETWORK_LINK=source_database_link
作用:允许从一个用db_link标识的数据库导出数据
说明:(20080417暂停) ,20080421继续。 没有什么特别的。
如果源数据库是只读的,那么在源数据库上的用户必须拥有一个本地管理的表空间作为默认的临时表空间,否则作业会失败的。
限制:当本参数network_link和参数tables是连接在一起使用的,只能导出整个表格,分区导出是不行的。目前版本的pump只支持public,fixed-user,和connected-user类型的dblink,而current-user database link是不被支持的.
例子:
F:\Temp\Temp>expdp TEST/TEST@apexcrm_250 dumpfile=08042103.dmp nologfile=Y estimate=blocks tables=(HIRE.STUDENTS) network_link=l_HIRE
Export: Release 10.2.0.1.0 - Production on 星期一, 21 4月, 2008 18:18:47
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "TEST"."SYS_EXPORT_TABLE_01": TEST/********@apexcrm_250 dumpfile=08042103.dmp nologfile=Y estimate=blocks tables=(HIRE.STUDENTS) network_link=l_HIRE
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. estimated "HIRE"."STUDENTS" 128 KB
Total estimation using BLOCKS method: 128 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "HIRE"."STUDENTS" 10.90 KB 48 rows
Master table "TEST"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for TEST.SYS_EXPORT_TABLE_01 is:
D:\ORACLE\PRODUCT\10.2.0\ADMIN\APEXCRM\DPDUMP\08042103.DMP
Job "TEST"."SYS_EXPORT_TABLE_01" successfully completed at 07:55:53
1.2.19 nologfile 意思是不记录日志,具体略。 格式为nologfile=[Y|N]
1.2.20 PARALLEL
格式:PARALLEL=integer
作用:使得导出任务能够启动几个进程来执行导出,从而提高效率。
说明:使用这个选项会启动三种进程(Unix下):工作进程、I/o进程,控制进程。
需要注意的是,N必须等于用dumpfile设定的文件个数,或者如果你如果在dumpfile中制定%U参数也可以的。因为每个活动的工作进程或者I/O服务进程一次写一个文件,是以独占的方式完成的,如果文件数目不够会导致相反的结果.一些工作进程在等待文件(文件数目不够啊)的时候会处于空闲状态(不干任何事情,就是等),因此降低了整个任务的性能。更重要的是,对于那些I/O进程而言如果如法获得需要输出的文件,那么会导致ora-39035的异常,并停止导出。这两种情况都可以纠正过来,用DATA pump 工具连接到任务上,并使用add_file命令添加更多的文件(交互模式下,当然要先停止任务),并重新启动任务。(是不是说?)
限制:
例子:
F:\Temp\Temp>expdp test/test@ilovechina dumpfile=0804_%U.dmp nologfile=y tables=(myviews) parallel=3
Export: Release 10.2.0.1.0 - Production on 星期四, 24 4月, 2008 18:25:52
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "TEST"."SYS_EXPORT_TABLE_01": test/********@ilovechina dumpfile=0804_%U.dmp nologfile=y tables=(myviews) parallel=
3
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 KB
. . 导出了 "TEST"."MYVIEWS" 104 KB 3670 行
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
已成功加载/卸载了主表 "TEST"."SYS_EXPORT_TABLE_01"
******************************************************************************
TEST.SYS_EXPORT_TABLE_01 的转储文件集为:
D:\ORACLE\PRODUCT\10.2.0\ADMIN\CRMII\DPDUMP\0804_01.DMP
D:\ORACLE\PRODUCT\10.2.0\ADMIN\CRMII\DPDUMP\0804_02.DMP
作业 "TEST"."SYS_EXPORT_TABLE_01" 已于 18:23:52 成功完成
1.2.21 parfile
格式:PARFILE=[directory_path]file_name
作用:方便命令输入
说明:无,仅仅是为了方便,但是我们都建议用这个,如果命令太长的话。
限制:无
例子:略
1.2.22 QUERY
格式:QUERY = [schema.][table_name:] query_clause
作用:只导出制定查询的数据集合
说明:无,最好和parfile结合使用,因为需要用单引号或者双引号把语句括起来,如果是在命令行在输入单引号和双引号会很麻烦的,需要添加不少的转义符。
限制:不能和以下参数组合使用 :CONTENT=METADATA_ONLY,ESTIMATE_ONLY,TRANSPORT_TABLESPACES
例子: 略
1.2.23 SAMPLE
格式:SAMPLE=[[schema_name.]table_name:]sample_percent
作用:用于抽样导出数据,按照百分比,可以介于schema,也可以基于table,也可以介于full database。如果直接使用sample=50%(例如),即表示导出整个数据库的50%数据。
说明:sample_percent取值范围=[.000001,100)
限制:无法用于网络传输,也就是无法用于dblink方式吧。
例子:(省略了cmd命令)
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "TEST"."SYS_EXPORT_TABLE_01": test/********@ilovechina dumpfile=testspace.dmp
tables=test_space sample=test.test_space:0.0001
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 152 MB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "TEST"."TEST_SPACE" 5.398 KB 7 行
已成功加载/卸载了主表 "TEST"."SYS_EXPORT_TABLE_01"
******************************************************************************
TEST.SYS_EXPORT_TABLE_01 的转储文件集为:
D:\ORACLE\PRODUCT\10.2.0\ADMIN\CRMII\DPDUMP\TESTSPACE.DMP
作业 "TEST"."SYS_EXPORT_TABLE_01" 已于 17:33:28 成功完成
1.2.24 SCHEMAS
格式:SCHEMAS=schema_name [, ...]
作用:按照模式方式来导出对象
说明:
限制: :如果没有EXP_FULL_DATABASE角色,则只能用自己的schema
例子: 略
1.2.25 STATUS
格式:STATUS=[integer]
作用:按照特定间隔(秒)显示导出任务的状态
说明:默认参数是0,就是不显示信息,除了最后的总结信息。
限制: :
例子:略
1.2.26 TABLES
格式: TABLES=[schema_name.]table_name[:partition_name] [, ...]
作用:允许制定某个表格,或者制定导出某个表格的某个分区信息。
说明:表名允许使用通配符好,例如tables=test% .
限制:1)如果存在交叉引用,可能无法导出,例如一个定义在当前模式的trigger,其主表可能是另外一个模式 的,但是如果表格所在的模式没有被显式地申明,那么无法导出改trigger;2)在table模式中,type是不会被导出的,如果目标数据库中不存在定义表格所需要的type,那么导入的时候可能失败;3)无法导出dblink数据库上的分区;4)如果要加分区参数,那么不允许使用通配符来表达表名;5)不允许使用同义词。
例子:
1.2.27 TABLESPACES
格式:TABLESPACES=tablespace_name [, ...]
作用:按照表空间的方式导出对象
说明:可以设置多个。对于表格,只有有部分是在其中的也会被导出。
限制: :无
例子:略
1.2.28 TRANSPORT_FULL_CHECK
格式:TRANSPORT_FULL_CHECK={y | n}
作用:用于检测导出部分和非导出部分的关系。
说明:如果参数 =y,系统会确认二者是没有关系的,如果有关系,那么就会失败,这种检验对两个方面是同等要求的;如果是N,仅仅检查导出部分在非导出部门没有相关部分,这还是用例子说比较好说,譬如索引必须依赖表格,而表格不必要依赖索引,如果导出部分是表格,那么参数为N可以通过,如果是索引,那么是无法通过的。
必须和transport_tablespaces一起使用。
限制: :无
例子:略
1.2.29 TRANSPORT_TABLESPACES
格式:TRANSPORT_TABLESPACES=tablespace_name [, ...]
作用:进行一转换模式的导出。
说明:
限制: :无法重启该种任务;并行度只能是1(不能并行);必须要有EXP_FULL_DATABASE角色;只能导入到等级别或者更高级别数据库中。
例子:略
1.2.30 VERSION
格式:VERSION={COMPATIBLE | LATEST | version_string}
作用:创建一个符合特定版本的dump文件,改文件可以被用到当前版本之前的服务器上。例如10.2创建的可以用到10.1中去,或者是11g之后的可以用到10g上。
说明:只能够在10.1之后的版本用,因为从10.1开始才有expdmp,impdp命令。
COMPATITLE,这是默认的参数选项,这和数据库的compatibility level是一致的,必须设置为9.2或者9.2之后。latest ,就是当前数据库的版本。version_string ,具体的版本号,但是不能小于9.2(含)
限制: :如果当前对象所使用的一些关联对象的版本和设置的版本不符合,可能无法导出。例如一个表格用一个新的类型定义列,但是改类型在当前版本有,但是在之前的版本没有,如果version指定了之前的版本,那么改表格就无法导出。
例子:略
二,impdp
impdp的把部分命令和expdp 类似,所以不再对每个命令进行介绍了,下面只介绍它们之前的差异,和impdp的不同命令。
2.1 remap_datafile
格式:REMAP_DATAFILE=source_datafile:target_datafile
作用:为ddl语句修改datafile语句。在不同的操作系统平台之间移动数据库是比较有效的。
说明: 这些ddl也只限于CREATE TABLESPACE, CREATE LIBRARY, and CREATE DIRECTORY。此外当前用户必须具有IMP_FULL_DATABASE角色。第三文件名必须用单引号括起来,所以也建议使用parfile参数来操作。
限制:
例子:REMAP_DATAFILE='DB1$:[HRDATA.PAYROLL]tbs6.f':'/db1/hrdata/payroll/tbs6.f'
这个例子是从VMS操作系统转移到unix系统下。
2.2 REMAP_SCHEMA
格式:REMAP_SCHEMA=source_schema:target_schema
作用:重映射模式。
说明:1)可以有多个这样的句子,知识要求source_schema必须不同;2)这种映射可能不是百分百的,因为部分对象可能有一些关联,例如内部的一些过程可能引用到其它schema的内容;3)只要有足够的权限,即使目标schema不存在,也会自动创建,否则就要先人工建立。对于自动建立的,请用alter user语句修改新建user的密码.4)本参数实际基本同imp的fromuser touser语句.
限制:如%