暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle数据库-数据泵 核心参数全解析

博森瑞 2021-06-24
1250

Oracle expdp 命令使用详细

1.ATTACH=[schema_name.]job_name

Schema_name 用于指定方案名,job_name 用于指定导出作业名.注意,如果使用 ATTACH选项,在命令行除了连接字符串和 ATTACH 选项外,不能指定任何其他选项,示例如下:expdp scott/tiger ATTACH=scott.export_job

2. CONTENT

该选项用于指定要导出的内容.默认值为 ALL CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

当设置 CONTENT 为 ALL 时,将导出对象定义及其所有数据.为 DATA_ONLY 时,只导出对象数据,为 METADATA_ONLY 时,只导出对象定义

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump CONTENT=METADATA_ONLY

3. DIRECTORY

指定转储文件和日志文件所在的目录 DIRECTORY=directory_object

Directory_object 用于指定目录对象名称.需要注意,目录对象是使用 CREATE DIRECTORY语句建立的对象,而不是 OS 目录

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

4. DUMPFILE

用于指定转储文件的名称,默认名称为 expdat.dmp DUMPFILE=[directory_object:]file_name [,….]

Directory_object 用于指定目录对象名,file_name 用于指定转储文件名.需要注意,如果不指定 directory_object,导出工具会自动使用 DIRECTORY 选项指定的目录对象

expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

5. ESTIMATE

指定估算被导出表所占用磁盘空间分方法.默认值是 BLOCKS ESTIMATE={BLOCKS | STATISTICS}

设置为 BLOCKS 时,Oracle 会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为 STATISTICS 时,根据最近统计值估算对象占用空间

expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS DIRECTORY=dump DUMPFILE=a.dump

6. ESTIMATE_ONLY

指定是否只估算导出作业所占用的磁盘空间,默认值为 N EXTIMATE_ONLY={Y | N}

设置为 Y 时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为 N 时,不仅估算对象所占用的磁盘空间,还会执行导出操作.

expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

7. EXCLUDE

该选项用于指定执行操作时释放要排除对象类型或相关对象 EXCLUDE=object_type[:name_clause] [,….]

Object_type 用于指定要排除的对象类型,name_clause 用于指定要排除的具体对 象.EXCLUDE 和 INCLUDE 不能同时使用

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

8. FILESIZE

指定导出文件的最大尺寸,默认为 0,(表示文件尺寸没有限制)

指定导出特定 SCN 时刻的表数据 FLASHBACK_SCN=scn_value

Scn_value 用于标识 SCN 值.FLASHBACK_SCN 和 FLASHBACK_TIME 不能同时使用

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_SCN=358523

9. FLASHBACK_TIME

指定导出特定时间点的表数据 FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

10. FULL

指定数据库模式导出,默认为 N FULL={Y | N} 为 Y 时,标识执行数据库导出.

11. HELP

指定是否显示 expdp 命令行选项的帮助信息,默认为 N

当设置为 Y 时,会显示导出选项的帮助信息. expdp help=y

12. INCLUDE

指定导出时要包含的对象类型及相关对象 INCLUDE = object_type[:name_clause] [,… ] 在导数据过程中有如下参数比较好用: TABLE_DATA    表中的数据

TABLE    表的定义,就是 create table 的语句,include 后只写 table 参 数,将只创建表结构,exclude 后写 table 参数导入过程将不执行 create table 命令。

OBJECT_GRANT    对象赋权操作  INDEX     索引定义,情况跟 table 一致

CONSTRAINT    约束 INDEX_STATISTICS    索引统计信息 TABLE_STATISTICS     表的统计信息

在未使用 parfile 文件的情形下,所有的符号都需要进行转义,包括括号,双引号,单引号等

# expdp system/manager DIRECTORY=my_dir DUMPFILE=exp_tab.dmp

LOGFILE=exp_tab.log SCHEMAS=scott

INCLUDE=TABLE:\”IN (\’EMP\’, \’DEP\’)\”

13. JOB_NAME

指定要导出作用的名称,默认为 SYS_XXX JOB_NAME=jobname_string

SELECT * FROM DBA_DATAPUMP_JOBS;—查看存在的 job

14. LOGFILE

指定导出日志文件文件的名称,默认名称为 export.log LOGFILE=[directory_object:]file_name

Directory_object 用于指定目录对象名称,file_name 用于指定导出日志文件名.如果不指定

directory_object.导出作用会自动使用 DIRECTORY 的相应选项值.

expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log

15. NETWORK_LINK

指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

如:expdp scott/scott directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area dumpfile =p_street_area.dmp

logfile=p_street_area.log    job_name=my_job igisdb 是目的数据库与源数据的链接名,

dir_dp 是目的数据库上的目录

而如果直接用使用连接字符串(@fgisdb),expdp 属于服务端工具,expdp 生成的文件默认是 存放在服务端的

16. NOLOGFILE

该选项用于指定禁止生成导出日志文件,默认值为 N.

17. PARALLEL

指定执行导出操作的并行进程个数,默认值为 1

注:并行度设置不应该超过 CPU 数的 2 倍,如果 cpu 为 2 个,可将 PARALLEL 设为 2,在导 入时速度比 PARALLEL 为 1 要快

而对于导出的文件,如果 PARALLEL 设为 2,导出文件只有一个,导出速度提高不多,因 为导出都是到同一个文件,会争抢资源。所以可以设置导出文件为两个,如下所示:

expdp scott/scott directory=d_test dumpfile=scottfile1.dp,scottfile2.dp parallel=2

18. PARFILE

指定导出参数文件的名称 PARFILE=[directory_path] file_name

19. QUERY

用于指定过滤导出数据的 where 条件 QUERY=[schema.] [table_name:] query_clause

Schema 用于指定方案名,table_name 用于指定表名,query_clause 用于指定条件限制子 句.QUERY 选项不能与 ###CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES 等选项 同时使用.

expdp scott/tiger directory=dump dumpfile=a.dmp Tables=emp query=’WHERE deptno=20’

20. SCHEMAS

该方案用于指定执行方案模式导出,默认为当前用户方案.

21. STATUS

指定显示导出作用进程的详细状态,默认值为 0

22. TABLES

指定表模式导出 TABLES=[schema_name.]table_name[:partition_name][,…]

Schema_name 用于指定方案名,table_name 用于指定导出的表名,partition_name 用于指定要导出的分区名.

23. TABLESPACES

指定要导出表空间列表

24. TRANSPORT_FULL_CHECK

该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为 N.

当设置为 Y 时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所 在的表空间只有一个表空间被搬移,将显示错误信息.当设置为 N 时,导出作用只检查单端依赖,

如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬 移索引所在表空间,则不会显示错误信息.

25. TRANSPORT_TABLESPACES

指定执行表空间模式导出

26. VERSION

指定被导出对象的数据库版本,默认值为 COMPATIBLE. VERSION={COMPATIBLE | LATEST | version_string}为 COMPATIBLE 时,会根据初始化参数 COMPATIBLE 生成对象元数据;为 LATEST 时,会根据数据库的实际版本生成对象元数据.version_string 用于指定数据库版本字符串.调用 expdp

导出的相关命令使用:

  • Ctrl+C 组合键:在执行过程中,可以按 Ctrl+C 组合键退出当前交互模式,退出之后, 导出操作不会停止

  • Export> status    —查看当前 JOB 的状态及相关信息

  • Export> stop_job    —暂停 JOB(暂停 job 后会退出 expor 模式)

  • 重新进入 export 模式下:C:\Documents and Settings\Administrator>expdp lttfm/lttfm attach=lttfm.my_job1 ###—语句后面不带分号

  • Export> start_job    —打开暂停的 JOB(并未开始重新执行)

  • Export> continue_client    —通过此命令重新启动  “LTTFM”.”MY_JOB”:

  • Export> kill_job    —取消当前的 JOB 并释放相关客户会话(将 job 删除同时 删除 dmp 文件)

  • Export> exit_client    —通过此命令退出 export 模式(通过 4)可再进入export 模式下)

    注:导出完成后 job 自动卸载

数据泵导出的各种模式:

1、按表模式导出:

expdp zftang/zftang@fgisdb    tables=zftang.bi_manhole_info dumpfile=expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job

2、按查询条件导出:

expdp zftang/zftang@fgisdb    tables=zftang.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query=’”where rownum<11”‘

3、按表空间导出:

expdp zftang/zftang@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job

4、导出方案

expdp zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,scott

5、导出整个数据库:

expdp zftang/zftang@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job

IMPDP 介绍

IMPDP 命令行选项与 expdp 有很多相同的,不同的有:

1、REMAP_DATAFILE

该选项用于将源数据文件名转变为目标数据文件名,在不同平台之间搬移表空间时可能需要该选 项.

REMAP_DATAFIEL=source_datafie:target_datafile

2、REMAP_SCHEMA

该选项用于将源方案的所有对象装载到目标方案中. REMAP_SCHEMA=source_schema:target_schema

3、REMAP_TABLESPACE

将源表空间的所有对象导入到目标表空间中

REMAP_TABLESPACE=source_tablespace:target:tablespace

4、REUSE_DATAFILES

该选项指定建立表空间时是否覆盖已存在的数据文件.默认为 N REUSE_DATAFIELS={Y | N}

5、SKIP_UNUSABLE_INDEXES

指定导入是是否跳过不可使用的索引,默认为 N

6、SQLFILE

指定将导入要指定的索引 DDL 操作写入到 SQL 脚本中

SQLFILE=[directory_object:]file_name

Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql

7、STREAMS_CONFIGURATION

指定是否导入流元数据(Stream Matadata),默认值为 Y.

8、TABLE_EXISTS_ACTION

该选项用于指定当表已经存在时导入作业要执行的操作,默认为 SKIP

TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }

当设置该选项为 SKIP 时,导入作业会跳过已存在表处理下一个对象;当设置为 APPEND 时,会 追加数据,为 TRUNCATE 时,导入作业会截断表,然后为其追加新数据;当设置为 REPLACE 时, 导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE 选项不适用与簇表和 NETWORK_LINK 选项

9、TRANSFORM

该选项用于指定是否修改建立对象的 DDL 语句

TRANSFORM=transform_name:value[:object_type]

Transform_name 用于指定转换名,其中 SEGMENT_ATTRIBUTES 用于标识段属性(物理属 性,存储属性,表空间,日志等信息),STORAGE 用于标识段存储属性,VALUE 用于指定是否包含 段属性或段存储属性,object_type 用于指定对象类型.

Impdp scott/tiger directory=dump dumpfile=tab.dmp Transform=segment_attributes:n:table

10、TRANSPORT_DATAFILES

该选项用于指定搬移空间时要被导入到目标数据库的数据文件

TRANSPORT_DATAFILE=datafile_name

Datafile_name 用于指定被复制到目标数据库的数据文件

Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp TRANSPORT_DATAFILES=’/user01/data/tbs1.f’调用 IMPDP

impdp 导入模式:

1、按表导入

p_street_area.dmp 文件中的表,此文件是以 scott 用户按 schemas=scott 导出的:

impdp scott/scott@fgisdb  dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job

2、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导 入)

impdp scott/scott@fgisdb schemas=scott dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job

3、不通过 expdp 的步骤生成 dmp 文件而直接导入的方法:

—从源数据库中向目标数据库导入表 p_street_area

impdp scott/scott directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log  job_name=my_job

igisdb 是目的数据库与源数据的链接名,dir_dp 是目的数据库上的目录

4、更换表空间

采用 remap_tablespace 参数

—导出 scott 用户下的所有数据

expdp system/orcl directory=data_pump_dir dumpfile=scott.dmp SCHEMAS=scott

注:如果是用 sys 用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这 些内容

—以下是将 scott 用户下的数据全部导入到表空间 gcomm(原来为 gmapdata 表空间下)下

impdp system/orcl directory=data_pump_dir dumpfile=scott.dmp remap_tablespace=gmapdata:gcomm

impdp 导入模式:

1、按表导入

p_street_area.dmp 文件中的表,此文件是以 scott 用户按

schemas=scott 导出的:

impdp scott/scott@fgisdb    dumpfile =p_street_area.dmp logfile=imp_p_street_area.log directory=dir_dp tables=p_street_area job_name=my_job

2、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的 情况下也可以直接导入)

impdp scott/scott@fgisdb schemas=scott dumpfile=expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job

3、不通过 expdp 的步骤生成 dmp 文件而直接导入的 方法:

—从源数据库中向目标数据库导入表 p_street_area

impdp scott/scott directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_area.log    job_name=my_job

igisdb 是目的数据库与源数据的链接名,dir_dp 是目的数据库上的目录

4、更换表空间

采用 remap_tablespace 参数

—导出 scott 用户下的所有数据

expdp system/orcl directory=data_pump_dir dumpfile=scott.dmp SCHEMAS=scott

注:如果是用 sys 用户导出的用户数据,包括用户创建、授权部分,用自身用 户导出则不含这些内容

—以下是将 scott 用户下的数据全部导入到表空间 gcomm(原来为gmapdata 表空间下)下

impdp system/orcl directory=data_pump_dir dumpfile=scott.dmp remap_tablespace=gmapdata:gcomm

以上是有关Oracle数据库——数据泵内容的详解,关注博森瑞微信号,我们会持续不断地更新技术文档

文章转载自博森瑞,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论