expdp/impdp 是 oracle 10g 版本后推出的服务器端工具--数据泵,作用是为了将数据库中的逻辑对象,比如表、用户、全库、表空间进 行导入,导出 | ||
命令解析 | ||
ATTACH | ATTACH [=[schema_name.]job_name] schema_name 表示用户名,job_name 表示导出的作业名。 该选项用于与已存在导出作业建立关联. 注意,如果使用 ATTACH 选项,在命令行除了连接字符串和 ATTACH 选 项外,不能指定任何其他选项。 可以通过查询 DBA_DATAPUMP_JOBS 获得系统中现有的作业信息。 | expdp isc/isc ATTACH=isc.export_job |
COMPRESSION | COMPRESSION=(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 是用于指定具体数据库版本的字符 |