expdp和impdp参数介绍

来源:互联网 发布:淘宝号黑了怎么白回来 编辑:程序博客网 时间:2024/06/07 19:17

数据泵导出导入(EXPDPIMPDP)的作用

 

1,实现逻辑备份和逻辑恢复.

2,在数据库用户之间移动对象.

3,在数据库之间移动对象

4,实现表空间搬移.

 

 

数据泵导出导入与传统导出导入的区别

10g之前,传统的导出和导入分别使用EXP工具和IMP工具,10g开始,不仅保留了原有的EXPIMP工具,还提供了数据泵导出导入工具EXPDPIMPDP.使用EXPDPIMPDP时应该注意的事项;

 

EXPIMP是客户段工具程序,它们既可以在可以段使用,也可以在服务段使用.

EXPDPIMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文;

数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

 

EXPDP命令行选项

 

1. ATTACH

该选项用于在客户会话与已存在导出作业之间建立关联.语法如下

ATTACH=[schema_name.]job_name

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

Expdp scott/tiger ATTACH=scott.export_job

查询存在作业

select * from dba_datapump_jobs;

 

2. CONTENT

  该选项用于指定要导出的内容.默认值为ALL

  CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

 

当设置CONTENTALL ,将导出对象定义及其所有数据.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

建立目录:

CREATE DIRECTORY dump as ‘d:dump’;

 

查询创建了那些子目录:

     SELECT * FROM dba_directories;

 

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

EXTIMATE={BLOCKS | STATISTICS}

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

Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS

DIRECTORY=dump DUMPFILE=a.dump

 

6. EXTIMATE_ONLY (仅expdp有)

指定是否只估算导出作业所占用的磁盘空间,默认值为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(仅expdp有)

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

 

9. FLASHBACK_SCN

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

     FLASHBACK_SCN=scn_value

     Scn_value用于标识SCN.FLASHBACK_SCNFLASHBACK_TIME不能同时使用

     Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp

     FLASHBACK_SCN=358523

 

10. 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’)”

 

11. FULL

       指定数据库模式导出,默认为N

       FULL={Y | N}

       Y,标识执行数据库导出.

 

12. HELP

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

       当设置为Y,会显示导出选项的帮助信息.

       Expdp help=y

 

13. INCLUDE

       指定导出时要包含的对象类型及相关对象

       INCLUDE = object_type[:name_clause] [,… ]

       include=object_type[:"in('objectname',...)"]

INCLUDE=TABLE,VIEW,PACKAGE:"LIKE '%API'"

14. JOB_NAME

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

       JOB_NAME=jobname_string

 

15. 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

 

16. NETWORK_LINK

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

     CONN / AS SYSDBA
GRANT CREATE DATABASE LINK TO test;
 
CONN test/test
CREATE DATABASE LINK remote_scott CONNECT TO scott IDENTIFIED BY tiger USING 'DEV';

In the case of exports, the NETWORK_LINK parameter identifies the database link pointing to the source server. The objects are exported from the source server in the normal manner, but written to a directory object on the local server, rather than one on the source server. Both the local and remote users require the EXP_FULL_DATABASE role granted to them.

expdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DIR dumpfile=EMP.dmp logfile=expdpEMP.log

For imports, the NETWORK_LINK parameter also identifies the database link pointing to the source server. The difference here is the objects are imported directly from the source into the local server without being written to a dump file. Although there is no need for a DUMPFILE parameter, a directory object is still required for the logs associated with the operation. Both the local and remote users require the IMP_FULL_DATABASE role granted to them.

impdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DIR logfile=impdpSCOTT.log remap_schema=SCOTT:TEST

 

 

17. NOLOGFILE

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

 

18. PARALLEL

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

(导出是设置多个进程数是 可以设置生成多个文件 dumpfile= hr%U.dmp

U也有利于并行执行任务。因为并行的时候,需要多个文件

如果设定了filesize 参数,那么这个%U的置换变量就很有用,当一个文件满了之后,就会自动的产生下一个文件

 

19. PARFILE

       指定导出参数文件的名称

       PARFILE=[directory_path] file_name

 

20. 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 dumpfiel=a.dmp

Tables=emp query=’WHERE deptno=20’

 

21. SAMPLE (仅expdp有)

       格式: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 成功完成

 

21. SCHEMAS

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

 

22. STATUS

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

在默认值 (0) 将显示可用时的新状态的情况下,

要监视的频率 (以秒计) 作业状态。

23. TABLES

 

指定表模式导出

TABLES=[schema_name.]table_name[:partition_name][,…]

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

 

24. TABLESPACES

       指定要导出表空间列表

 

25. TRANSPORT_FULL_CHECK

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

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

 

26. TRANSPORT_TABLESPACES

       指定执行表空间模式导出

 

 

 

27. VERSION

指定被导出对象的数据库版本,默认值为COMPATIBLE.

 

VERSION={COMPATIBLE | LATEST | version_string}

 

COMPATIBLE,会根据初始化参数COMPATIBLE生成对象元数据;LATEST,会根据数据库 的实际版本生成对象元数据.version_string用于指定数据库版本字符串.

 

 

调用EXPDP

使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指  定 转储文件所在的OS目录.因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.

CREATE DIRECTORY dump dir AS ‘D:DUMP’;

GRANT READ, WIRTE ON DIRECTORY dump_dir TO scott;

 

1,导出表

 Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

 

2,导出方案

 Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp

 SCHEMAS=system,scott

 

3.导出表空间

 Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp

 TABLESPACES=user01,user02

 

4,导出数据库

 Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y

 

 

 

使用IMPDP

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

 

1.REMAP_DATAFILE

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

EMAP_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

 

1, 导入表

  Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp

  TABLES=dept,emp

 

Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp

   TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM

 

第一种方法表示将DEPTEMP表导入到SCOTT方案中,第二种方法表示将DEPTEMP表导入的SYSTEM方案中.

 注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.

 

2,导入方案

  Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp

  SCHEMAS=scott

 

Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp

  SCHEMAS=scott REMAP_SCHEMA=scott:system

 

3,导入表空间

  Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp

  TABLESPACES=user01

 

4,导入数据库

  Impdp system/manager DIRECTO