expdp/impdp 是 oracle 10g 版本后推出的服务器端工具--数据泵,作用是为了将数据库中的逻辑对象,比如表、用户、全库、表空间进 行导入,导出
ATTACH [=[schema_name.]job_name]
schema_name 表示用户名,job_name 表示导出的作业名。
该选项用于与已存在导出作业建立关联.
注意,如果使用 ATTACH 选项,在命令行除了连接字符串和 ATTACH 选 项外,不能指定任何其他选项。
可以通过查询 DBA_DATAPUMP_JOBS 获得系统中现有的作业信息。
expdp isc/isc ATTACH=isc.export_job
COMPRESSIONCOMPRESSION=(METADATA_ONLY | NONE)
表 示 是 否 压 缩 数 据 库 对 象 的 元 数 据 , 这 里 只 提 供 两 个 选 项 : METADATA_ONLY 和 NONE。
在 10g 这个版本中这个选项的意义不大,因为元数据本身很小,压缩 与否对最终导出的文件大小的影响甚微。
11g 中对这个选项进行了增强,真正的提供了数据压缩的功能。
CONTENT该选项用于指定要导出的内容。默认值为 ALL。
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置 CONTENT 为 ALL 时,会导出对象元数据及对象数据;
当设置为 DATA_ONLY 时,只导出对象数据;
当设置为 METADATA_ONLY 时,只导出对象元数据。
expdp isc/isc DIRECTORY=dump_dir DUMPFILE=test.dump CONTENT=METADATA_ONLY
DIRECTORY指定转储文件和日志文件所在的目录,给定的参数是一个 DIRECTORY
数据库对象,是通过 CREATE DIRECTORY 语句建立的。 DIRECTORY=directory_object
expdp isc/isc DIRECTORY=dump_dir DUMPFILE=test.dump
DUMPFILE用于指定转储文件的名称,默认名称为 expdat.dmp。
DUMPFILE=[directory_object:]file_name [, ...]
directory_object 用于指定目录对象名,file_name 用于指定转储文 件名。
如果不给定 directory_object,导出工具会自动使用 DIRECTORY 选项指定的目录对象。
这个参数可以结合 FILESIZE 参数一起使用,达到生成多个转储文件 的目的。
注意,如果指定路径下已经存在待生成的导出文件,导出过程中将会 报错退出。expdp isc/isc DIRECTORY=dump_dir2 DUMPFILE=dump_dir2:test.dmp
FILESIZE限定单个转储文件的最大容量,默认值是 0,表示没有文件尺寸的限 制。
该选项与 DUMPFILE 选项一同使用。
FILESIZE=integer[B | K | M | G]
ENCRYPTION_
PASSWORD
该 参 数 需 要 和 Oracle 的 透 明 数 据 加 密 特性(TDE)一 同 使 用, 因 为 expdp 本身是不支持加解密的。
ENCRYPTION_PASSWORD = password
ESTIMATE用于估算被导出的表占用的空间大小(不包含表的元数据)。默认值 是 BLOCKS。
ESTIMATE={BLOCKS | STATISTICS}
设置为 BLOCKS 时,oracle 会按照目标对象所占用的数据块个数乘以 数据块尺寸估算对象占用的空间;
设置为 STATISTICS 时,会根据最近的统计值给出对象占用空间,这种方法的误差会比较大。无论使用哪种选项值,都会有误差。
expdp isc/isc DIRECTORY=dump_dir ESTIMATE=STATISTICS DUMPFILE=test.dump
EXTIMATE_ONLY指定是否只估算导出作业所占用的磁盘空间,默认值为 N ESTIMATE_ONLY={y | n}
设置为 Y 时,导出操作仅估算对象所占用的磁盘空间,不会执行导出 作业,注意此时不要使用 DUMPFILE 选项;
设置为 N 时,会估算对象所占用的磁盘空间,同时还会执行导出操作。 示例如下:
expdp isc/isc ESTIMATE_ONLY=y
EXCLUDE用于控制在导出过程中哪些数据库对象不被导出。 EXCLUDE=object_type[:name_clause] [, ...]
object_type 用于指定要排除的对象类型,name_clause 用于指定要 排除的具体对象名称。
注意 EXCLUDE 选项和 INCLUDE 选项不能同时使用。该选项支持模糊匹 配,非常好用的功能。
另外,被指定不被导出的表上的约束.索引.触发器等均不会被导出。
expdp isc/isc DIRECTORY=dump_dir DUMPFILE=a.dup EXCLUDE=VIEW
expdp system/oracle directory=d1 dumpfile=hr1.dmp parfile=exp_par.txt
参数文件 exp_par
exclude=table:"= 'EMPLOYEES'"
schemas=hr
只导出指定类型的对象
include=function
include=procedure
include=package
schemas=hr,oe
不导出某些表参数文件 exp_par
exclude=table:"in ('EMPLOYEE','DEPARTMENTS')"
导出指定类型的行expdp parfile=par3
根据 where 条件只导出相关行:
vi par3
userid=system/oracle
directory=d1
dumpfile=emp.dmp
tables=hr.employees
QUERY=hr.employees:"WHERE department_id > 10"
FLASHBACK_SCN
使用 Flashback Query 特性指定导出特定 SCN 时刻的表数据。 FLASHBACK_SCN=scn_value
scn_value 用 于 给 出 SCN 值 。
注 意 : FLASHBACK_SCN 选 项 和 FLASHBACK_TIME 选项不能同时使用。
expdp isc/isc DIRECTORY=dump_dir DUMPFILE=test.dmp FLASHBACK_SCN=358523
FLASHBACK_TIME使用 Flashback Query 特性指定导出特定时间点的表数据。 FLASHBACK_TIME="TO_TIMESTAMP(time-value)"
注意:FLASHBACK_TIME 选项和 FLASHBACK_SCN 选项不能同时使用。
expdp isc/isc DIRECTORY=dump_dir DUMPFILE=test.dmp FLASHBACK_TIME="TO_TIMESTAMP('23-09-2010 YYYY HH24:MI:SS')"
FULL是否以全库模式导出数据库。默认为 N。FULL={y | n}
为 Y 时,表示执行数据库的全库导出。
INCLUDE指定导出哪些数据库对象类型或数据库对象。与 EXCLUDE 选项用法相 同,功能相反。
注意 INCLUDE 选项和 EXCLUDE 选项不能同时使用。
INCLUDE = object_type[:name_clause] [, ...]
LOGFILE指定导出过程中日志文件的名称,默认值为 export.log。 LOGFILE=[directory_object:]file_name
directory_object 指定目录对象的名称,file_name 用于指定导出日 志文件的名称。
如果不指定 directory_object,会自动使用 DIRECTORY 选项的值。
expdp isc/isc DIRECTORY=dump_dir DUMPFILE=test.dmp logfile=test.log
NETWORK_LINK
结合数据库链,完成远程数据库对象的导出。 NETWORK_LINK=source_database_link
NOLOGFILE控制是否禁止生成导出日志文件,默认值为 N。如果设置为 Y,表示不输出日志。
NOLOGFILE={y | n}
PARALLEL指定执行导出操作的并行度,默认值为 1。PARALLEL=integer
注意,这个参数给出的并行度是一个真正能启用进程数的最大值。具体会启用多少个进程并行处理会受很多因素影响,例如生成转储文件的多少(不能多于文件数)、导出的数据量大小、CPU 资源还有系统 I/O 资源等因素影响。
PARFILE指定导出操作使用到的参数文件的名称。使用这个参数可以编写出比 较通用的导出脚本。
PARFILE=[directory_path]file_name
QUERY用来指定类似 where 语句限定导出的记录。相比 exp 命令的 QUERY 选项,这里更加的灵活,可以同时针对每张表进行条件限制。 QUERY = [schema.][table_name:] query_clause因 为 该 参 数 目 的 是 限 制 导 出 数 据 的 多 少 , 因 此 不 能 和CONTENT=METADATA_ONLY.ESTIMATE_ONLY还有TRANSPORT_TABLESPACES 一起使用。
expdp isc/isc directory=dump_dir dumpfiel=test.dmp tables=emp query='WHERE deptno=66'
SCHEMAS按照 SCHEMA 模式导出,默认为当前用户。SCHEMAS=schema_name [, ...]
STATUS指定显示导出作业进程的详细状态,默认值为 0。 STATUS=[integer]
TABLES以表模式导出数据。可以同时导出多个表;支持通配符格式的导出;也支持只导出分区表中的某个分区。
TABLES=[schema_name.]table_name[:partition_name] [, ...]
schema_name 用于指定用户名,table_name 用于指定导出的表名,partition_name 用于指定要导出的分区名。
TABLESPACES指定需要导出哪个表空间中的表数据。注 意 : Only the tables contained in a specified set of tablespaces are unloaded.也就是说,只有表空间里的表数据会被导出。
TABLESPACES=tablespace_name [, ...]
TRANSPORT_FULL_CHECK用来检查被传输的表空间是否为严格的自包含,默认为 N。
TRANSPORT_TABLESPACES指定传输表空间指定的表空间列表。TABLESPACES=tablespace_name [, ...]
VERSION该 选 项用 来指 定数 据库 生成 的转 储文 件最 低兼 容的 版本 ,默 认值 为 COMPATIBLE。
VERSION={COMPATIBLE | LATEST | version_string}
当值为 COMPATIBLE 时,会以初始化参数中 COMPATIBLE 参数内容为准 ; 为 LATEST 时 , 表 示 最 高 版 本 与 数 据 库 版 本 保 持 一 致 ;
version_string 是用于指定具体数据库版本的字符