数据泵 EXPDP 导出工具的使用

数据泵 EXPDP 导出工具的使用

分类: Oracle 其它特性 2010-10-07 18:10 4100人阅读 评论(5) 收藏 举报

工具oracleprocessingobjectstatisticstable

--=================================

--数据泵 EXPDP 导出工具的使用

--=================================

 

    对于Oracle 数据库之间的导入导出,可以使用Oracle提供的导入导出工具EXP/IMP来实现。EXP/IMPOracle早期提供的数据导入导出工具。在Oracle 10g 中,提供了高速导入导出数据泵IMPDPEXPDP,本文主要讲述EXPDP的用法。

    关于IMPDP的用法,请参照:数据泵IMPDP 导入工具的使用

   

一、数据泵的体系结构

    数据泵是一个基于服务器端的高速导入导出工具,通过dbms_datapump包来调用

    提供expdpimpdp,以及基于Web页面来实现导入导出

    提供两种数据数据方式方式:直接路径、外部表

    可以定制数据泵作业,以及从作业中分离和重新附加到作业

    服务器端的数据泵是直接访问数据文件与SGA,不必通过会话进行访问

    数据泵进程

        Unix系统而言,数据泵进程为expdpimpdp

        Windows系统而言,数据泵进程为expdp.exeimpdp.exe

    启动一个DataPump作业,至少会启动下列两个进程,一个Data Pump Master(DMnn),一个或多个工作进程(DWnn),主进程控制工作进程

        如果多个DataPump作业同时运行,那么每个作业都具有自己的DMnn进程以及自己的DWnn进程

        如果设置了并行技术,则每个DWnn进程可以使用两个或多个并行执行服务器(名称为Pnnn)

    DataPump生成下列三种形式的文件

        SQL文件:描述指定作业所包含对象的若干DDL语句

        转储文件:即包含数据和元数据的文件

        日志文件:用于记录导出时的相关信息

    目录

        用于设置导入导出文件所在或存放的位置 create directory dump_scott as /home/oracle/dump/scott';    

        可以通过dba_directories来查看系统中已创建的目录 select * from dba_directories;

        对于创建的目录必须授予用户读写目录的权限    grant read,write on directory dump_scott to scott;

       

   

二、数据泵的优点

    Oracel 10g 中提供的数据泵,较之i时代的导入导出工具(imp,exp),除了能实现imp/exp的功能之外,提供了更好的性能,  下面是数据泵的优点

        为数据及数据对象提供更细微级别的选择性(使用exclude,include,content参数)

        可以设定数据库版本号(主要是用于兼容老版本的数据库系统)

        并行执行

        预估导出作业所需要的磁盘空间(使用estimate_only参数)

        支持分布式环境中通过数据库链接实现导入导出

        支持导入时重新映射功能(即将对象导入到新的目标数据文件,架构,表空间等)

        支持元数据压缩及数据采样

       

三、数据泵程序接口及模式

    数据泵导入导出接口如下

        命令行接口

        参数文件

        交互式命令行接口

        数据库控制台

       

    数据泵导入导出模式

        整个数据库

        架构

       

        表空间

        传输表空间

       

四、导出工具expdp

 

1. 它是操作系统下一个可执行的文件存放目录/ORACLE_HOME/bin

    [oracle@oradb bin]$ ls -lh expdp

    -rwxr-x--x 1 oracle oinstall 174K Sep 13 20:01 expdp

   

   expdp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移

  

   expdb支持三种模式:

       a. 表模式:  导出用户所有表或者指定的表

       b. 用户模式:导出用户所有对象以及对象中的数据

       c. 导出表空间:导出数据库中特定的表空间

       d. 整个数据库:  导出数据库中所有对象

 

    使用expdp-? 可以查看expdp命令的用法并启动交互进程,也可使用expdp -help来查看更详细的帮助信息

        [oracle@oradb bin]$ expdp -?

        abort_step              Undocumented feature

        access_method           Data Access Method - default is Automatic

        attach          Attach to existing job - no default)''

        compression             Content to export: default is METADATA_ONLY

        content         Content to export: default is ALL

        directory               Default directory specification

        dumpfile                dumpfile names: format is (file1,...) default is expdat.dmp

        encryption_password             Encryption key to be used

        estimate                Calculate size estimate: default is BLOCKS

        estimate_only           Only estimate the length of the job: default is N

        exclude         Export exclude option: no default

        filesize                file size: the size of export dump files

        flashback_time          database time to be used for flashback export: no default

        flashback_scn           system change number to be used for flashback export: no default

        full            indicates a full mode export

        include         export include option: no default

        ip_address              IP Address for PLSQL debugger

        help            help: display description on export parameters, default is N

        job_name                Job Name: no default)''

        keep_master             keep_master: Retain job table upon completion

        log_entry               logentry

        logfile         log export messages to specified file

        metrics         Enable/disable object metrics reporting

        mp_enable               Enable/disable multi-processing for current session

        network_link            Network mode export

        nologfile               No export log file created

        package_load            Specify how to load PL/SQL objects

        parallel                Degree of Parallelism: default is 1

        parallel_threshold              Degree of DML Parallelism

        parfile         parameter file: name of file that contains parameter specifications

        query           query used to select a subset of rows for a table

        sample          Specify percentage of data to be sampled

        schemas         schemas to export: format is '(schema1, .., schemaN)'

        silent          silent: display information, default is NONE

        status          Interval between status updates

        tables          Tables to export: format is '(table1, table2, ..., tableN)'

        tablespaces             tablespaces to transport/recover: format is '(ts1,..., tsN)'

        trace           Trace option: enable sql_trace and timed_stat, default is 0

        transport_full_check            TTS perform test for objects in recovery set: default is N

        transport_tablespaces           Transportable tablespace option: default is N

        tts_closure_check               Enable/disable transportable containment check: def is Y

        userid          user/password to connect to oracle: no default

        version         Job version: Compatible is the default

 

        Export: Release 10.2.0.1.0 - Production on Monday, 20 September, 2010 14:22:56

 

        Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

        Username:      

  

2. 导出工具expdp非交互式命令行方式的例子

    a.基于表模式的导出

    SQL> create directory dump_scott as '/home/oracle/dump/scott';

 

    Directory created.

 

    SQL> select * from dba_directories;

 

    OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH

    ------------------------------ ------------------------------ --------------------------------------------------

    SYS                            DUMP_SCOTT                     /home/oracle/dump/scott

 

    SQL> grant read,write on directory dump_scott to scott;

 

    Grant succeeded.

 

    SQL> !

    [oracle@oradb /]$ mkdir /home/oracle/dump

    [oracle@oradb /]$ mkdir /home/oracle/dump/scott

    [oracle@oradb ~]$ expdp scott/tiger directory=dump_scott dumpfile=dumptab.dmp /

    > logfile=scott.log tables=dept,emp

 

    Export: Release 10.2.0.1.0 - Production on Monday, 20 September, 2010 14:55:23

 

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    Starting "SCOTT"."SYS_EXPORT_TABLE_01":  scott/********/ directory=dump_scott dumpfile=dumptab.dmp logfile=scott.log tables=dept,emp

    Estimate in progress using BLOCKS method...

    Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

    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/CONSTRAINT/REF_CONSTRAINT

    Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

    . . exported "SCOTT"."DEPT"                              5.656 KB       4 rows

    . . exported "SCOTT"."EMP"                               7.820 KB      14 rows

    Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

    ******************************************************************************

    Dump file set for SCOTT.SYS_EXPORT_TABLE_01 is:

      /home/oracle/dump/scott/dumptab.dmp

    Job "SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at 14:55:56

 

    --后台中DMnn,DWnn进程为启动DataPump是产生的进程

    [oracle@oradb /]$ ps -ef | grep ora_d

    oracle    3445     1  0 14:19 ?        00:00:00 ora_dbw0_orcl

    oracle    3461     1  0 14:19 ?        00:00:00 ora_d000_orcl

 

    [oracle@oradb ~]$ ls -lh /home/oracle/dump/scott

    total 132K

    -rw-r----- 1 oracle oinstall 124K Sep 20 14:55 dumptab.dmp

    -rw-r--r-- 1 oracle oinstall 1.4K Sep 20 14:55 scott.log

 

    b. 基于用户模式导出

    [oracle@oradb /]$ expdp scott/tiger directory=dump_scott dumpfile=dumpscott.dmp schemas=scott

 

    Export: Release 10.2.0.1.0 - Production on Monday, 20 September, 2010 15:08:55

 

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    Starting "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/********/ directory=dump_scott dumpfile=dumpscott.dmp schemas=scott

    Estimate in progress using BLOCKS method...

    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

    Total estimation using BLOCKS method: 192 KB

    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

    Processing object type SCHEMA_EXPORT/TABLE/TABLE

    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX

    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

    Processing object type SCHEMA_EXPORT/TABLE/COMMENT

    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

    Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

    . . exported "SCOTT"."DEPT"                              5.656 KB       4 rows

    . . exported "SCOTT"."EMP"                               7.820 KB      14 rows

    . . exported "SCOTT"."SALGRADE"                          5.585 KB       5 rows

    . . exported "SCOTT"."BONUS"                                 0 KB       0 rows

    Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded

    ******************************************************************************

    Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:

      /home/oracle/dump/scott/dumpscott.dmp

    Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at 15:09:23

 

    c.基于表空间导出

    [oracle@oradb /]$ expdp scott/tiger directory=dump_scott dumpfile=users1.dmp,user2.dmp /

    > compression tablespaces=users

 

    Export: Release 10.2.0.1.0 - Production on Monday, 20 September, 2010 15:17:35

 

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    Starting "SCOTT"."SYS_EXPORT_TABLESPACE_01":  scott/********/ directory=dump_scott dumpfile=users1.dmp,user2.dmp compression tablespaces=users

    Estimate in progress using BLOCKS method...

    Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

    Total estimation using BLOCKS method: 192 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/COMMENT

    Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT

    Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

    . . exported "SCOTT"."DEPT"                              5.656 KB       4 rows

    . . exported "SCOTT"."EMP"                               7.820 KB      14 rows

    . . exported "SCOTT"."SALGRADE"                          5.585 KB       5 rows

    . . exported "SCOTT"."BONUS"                                 0 KB       0 rows

    Master table "SCOTT"."SYS_EXPORT_TABLESPACE_01" successfully loaded/unloaded

    ******************************************************************************

    Dump file set for SCOTT.SYS_EXPORT_TABLESPACE_01 is:

      /home/oracle/dump/scott/users1.dmp

    Job "SCOTT"."SYS_EXPORT_TABLESPACE_01" successfully completed at 15:17:51  

 

    [oracle@oradb /]$ ls -lh /home/oracle/dump/scott

    total 524K

    -rw-r----- 1 oracle oinstall 4.0K Sep 20 15:17 compression.dmp

    -rw-r----- 1 oracle oinstall 224K Sep 20 15:09 dumpscott.dmp

    -rw-r----- 1 oracle oinstall 124K Sep 20 14:55 dumptab.dmp

    -rw-r--r-- 1 oracle oinstall 1.6K Sep 20 15:17 export.log

    -rw-r--r-- 1 oracle oinstall 1.4K Sep 20 14:55 scott.log

    -rw-r----- 1 oracle oinstall 4.0K Sep 20 15:17 user2.dmp

    -rw-r----- 1 oracle oinstall 148K Sep 20 15:17 users1.dmp  

   

    d. 导出整个数据库,且使用并行导出方式

    [oracle@oradb /]$ expdp scott/tiger directory=dump_scott dumpfile=full20_%u.dmp parallel=4 full=y

 

    Export: Release 10.2.0.1.0 - Production on Monday, 20 September, 2010 15:24:02

 

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

 

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    ORA-31631: privileges are required

    ORA-39161: Full database jobs require privileges

 

    [oracle@oradb /]$ sqlplus /nolog

 

    SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 20 15:24:16 2010

 

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

    SQL> conn /as sysdba

    Connected.

    Grant succeeded.

 

    SQL> ! 

    [oracle@oradb /]$ expdp scott/tiger directory=dump_scott dumpfile=full20_%u.dmp parallel=6 full=y

    --中间过程省略

    [oracle@oradb dump]$ ls -lh ./scott/fu*

    -rw-r----- 1 oracle oinstall  19M Sep 20 15:36 ./scott/full20_01.dmp

    -rw-r----- 1 oracle oinstall  22M Sep 20 15:34 ./scott/full20_02.dmp

    -rw-r----- 1 oracle oinstall  18M Sep 20 15:36 ./scott/full20_03.dmp

    -rw-r----- 1 oracle oinstall  15M Sep 20 15:36 ./scott/full20_04.dmp

    -rw-r----- 1 oracle oinstall 5.4M Sep 20 15:36 ./scott/full20_05.dmp

    -rw-r----- 1 oracle oinstall 196K Sep 20 15:33 ./scott/full20_06.dmp

 

 

    [oracle@oradb dump]$ ps -ef | grep ora_d

    oracle    3445     1  0 14:19 ?        00:00:01 ora_dbw0_orcl

    oracle    3461     1  0 14:19 ?        00:00:00 ora_d000_orcl

    oracle   23443     1  4 15:32 ?        00:00:01 ora_dm00_orcl

    oracle   23494     1 23 15:32 ?        00:00:08 ora_dw01_orcl

    oracle   23673     1 11 15:33 ?        00:00:02 ora_dw02_orcl

    oracle   23675     1 16 15:33 ?        00:00:03 ora_dw03_orcl

    oracle   23677     1  8 15:33 ?        00:00:01 ora_dw04_orcl

    oracle   23679     1  5 15:33 ?        00:00:00 ora_dw05_orcl

    oracle   23681     1  2 15:33 ?        00:00:00 ora_dw06_orcl

    oracle   23696  2416  0 15:33 pts/1    00:00:00 grep ora_d

 

 

五、数据泵的监控

    1.查询dba_directories获得所创建的目录

    2.可以查询dba_datapump_jobs来查看数据泵作业的运行情况,也可以利用ATTACH重新连接上还在进行的JOB

      每个datapump可以通过job_name 参数来指定作业名称,如未指定,则系统使用默认的作业名称,如下面的视图中为SYS_EXPORT_FULL_01

      通过v$session_longops也可以查看长时间运行的datapump job的具体内容

     

        SQL> select owner_name owr,job_name jbn,operation ope,job_mode jbm,state,degree,

          2  attached_sessions atts,datapump_sessions dats

          3  from dba_datapump_jobs;

 

        OWR        JBN                  OPE                  JBM             STATE          DEGREE       ATTS       DATS

        ---------- -------------------- -------------------- --------------- ---------- ---------- ---------- ----------

        SCOTT      SYS_EXPORT_FULL_01   EXPORT               FULL            COMPLETING          2          1          2

 

 

        SQL> select sid, serial#,session_type

          2  from  v$session s, dba_datapump_sessions d

          3  where s.saddr = d.saddr;

 

               SID    SERIAL# SESSION_TYPE

        ---------- ---------- --------------

               143         10 DBMS_DATAPUMP

               149         37 MASTER

               132          3 WORKER

               136          3 WORKER

               135          4 WORKER

               141          5 WORKER

               128          2 WORKER

               142          4 WORKER

   

    3.监控数据泵的逻辑备份程度

        SELECT sid, serial#, context, sofar, totalwork,

        ROUND(sofar/totalwork*100,2) "%_COMPLETE"

        FROM v$session_longops

        WHERE opname LIKE '%EXP%'

        AND totalwork != 0

        AND sofar <> totalwork;

       

        SIDSERIAL#CONTEXTSOFAR   TOTALWORK   %_COMPLETE

        13033      0       54          70       77.14

   

六、expdp的常用参数

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

        CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

 

        expdp scott/tiger  schemas=scott content=all

        expdp scott/tiger tables=emp content=data_only directory=dump_scott dumpfile=empdata.dmp(只导出对象数据)

        expdp scott/tiger tables=emp content=metadata_only directory=dump_scott dumpfile=empmd.dmp(只有定义信息)

 

    2.estimate: 指定估算被导出表所占用磁盘空间分方法.默认值是blocks

 

        expdp scott/tiger directory=dump_scott dumpfile=dba_object.dmp tablespaces=users estimate=statistics

        expdp scott/tiger directory=dump_scott dumpfile=dba_object.dmp tablespaces=users estimate=blocks

 

    3.extimate_only:指定是否只估算导出作业所占用的磁盘空间,默认值为N

 

        expdp scott/tiger  schemas=scott estimate_only=y               

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

        N,不仅估算对象所占用的磁盘空间,还会执行导出操作.

 

    4.exclude:该选项用于指定执行操作时释放要排除对象类型或相关对象

        exclude=view

        exclude=package

        exclude=index:"like 'EMP%'

        object_type用于指定要排除的对象类型,name_expr用于指定要排除的具体对象.excludeinclude不能同时使用

        expdp scott/tiger  schemas=scott  exclude=view dumpfile=a9.dmp

 

        include = object_type[:"name_expr"]

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

       

    6.flashback_scn: 前提闪回功能开启

        expdp scott/tiger  tables=emp dumpfile=e2.dmp  flashback_scn=4284715

        如果闪回的时间点该对象结构发生变化,将报错(比如该对象没有创建或者ddl操作)

 

    7.flashback_time:指定导出特定时间点的表数据

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

 

        windows下:

        C:/>expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=a.dmp

        flashback_time=/"TO_TIMESTAMP('06-04-2010 11:24:26', 'DD-MM-YYYY HH24:MI:SS')/"

 

    8.query导出查询得到的结果集

        query=scott.emp :"where deptno = 30 and sal > 3500"

   

    9.sample 使用该参数进行对导出的数据进行采样

        sample="scott"."emp":20

        expdp scott/tiger directory=dump_scott dumpfile=sam.dmp sample=30

   

    10.dumpfile 指定导出时的文件名

        dumpfile=scott_tb.dmp

        dumpfile=scott_tb_%u.dmp   %u 用于扩展导出的文件名,固定长度为个字符,从开始递增,使用并行导出时建议指定该参数

 

 

 

 

 

expdp\impdpexp\imp

201116

 

数据泵文件

expdp介绍

EXPDP命令行选项
1. ATTACH
该选项用于在客户会话与已存在导出作用之间建立关联.语法如下
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}
当设置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

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(
具体见2Exclude导出用户中指定类型的指定对象)
该选项用于指定执行操作时释放要排除对象类型或相关对象
EXCLUDE=object_type[:name_clause] [,….]
Object_type
用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDEINCLUDE不能同时使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

8. FILESIZE
指定导出文件的最大尺寸,默认为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
(具体见1Include导出用户中指定类型的指定对象)
指定导出时要包含的对象类型及相关对象
INCLUDE = object_type[:name_clause] [,… ]

14. JOB_NAME
指定要导出作用的名称,默认为SYS_XXX
JOB_NAME=jobname_string
SELECT * FROM DBA_DATAPUMP_JOBS;--
查看存在的job

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
指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.
如:expdp gwm/gwm 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生成的文件默认是存放在服务端的

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

18. PARALLEL
指定执行导出操作的并行进程个数,默认值为1
注:并行度设置不应该超过CPU数的2倍,如果cpu2个,可将PARALLEL设为2,在导入时速度比PARALLEL1要快
   
而对于导出的文件,如果PARALLEL设为2,导出文件只有一个,导出速度提高不多,因为导出都是到同一个文件,会争抢资源。所以可以设置导出文件为两个,如下所示:
    expdp gwm/gwm directory=d_test dumpfile=gwmfile1.dp,gwmfile2.dp parallel=2

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 dumpfile=a.dmp Tables=emp query=’WHERE deptno=20’

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

22. STATUS
指定显示导出作用进程的详细状态,默认值为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

数据泵工具导出的步骤:
1、创建DIRECTORY
create directory dir_dp as 'D:\oracle\dir_dp';
2
、授权
Grant read,write on directory dir_dp to lttfm;
--
查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
 WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3
、执行导出
expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1
With the Partitioning, OLAP and Data Mining options
启动 "LTTFM"."SYS_EXPORT_SCHEMA_01":  lttfm/********@fgisdb sch
ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;  */
备注:
   1directory=dir_dp必须放在前面,如果将其放置最后,会提示 ORA-39002: 操作无效
                                                             ORA-39070: 无法打开日志文件。
                                                             ORA-39087: 目录名 DATA_PUMP_DIR; 无效
     
   2、在导出过程中,DATA DUMP 创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATA DUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB名字就为以指定名字出现
     如下改成:
     expdp lttfm/lttfm@fgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;
   3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。因此导致expdp lttfm/lttfm attach=lttfm.my_job1执行该命令时一直提示找不到job
   4
、创建的目录一定要在数据库所在的机器上。否则也是提示:

ORA-39002: 操作无效
 ORA-39070: 无法打开日志文件。
ORA-39087: 目录名 DATA_PUMP_DIR; 无效

 

 

导出的相关命令使用:
   1Ctrl+C组合键:在执行过程中,可以按Ctrl+C组合键退出当前交互模式,退出之后,导出操作不会停止
   2
Export> status               --查看当前JOB的状态及相关信息
   3
Export> stop_job             --暂停JOB(暂停job后会退出expor模式)
   4
)重新进入export模式下:C:\Documents and Settings\Administrator>expdp lttfm/lttfm attach=lttfm.my_job1 --语句后面不带分号
   5
Export> start_job            --打开暂停的JOB(并未开始重新执行)
   6
Export> continue_client      --通过此命令重新启动 "LTTFM"."MY_JOB":
   7
Export> kill_job             --取消当前的JOB并释放相关客户会话(将job删除同时删除dmp文件)
   8
Export> exit_client          --通过此命令退出export模式(通过4)可再进入export模式下)
 
注:导出完成后job自动卸载

数据泵导出的各种模式:
1、按表模式导出:
expdp lttfm/lttfm@fgisdb  tables=lttfm.b$i_exch_info,lttfm.b$i_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job

2
、按查询条件导出:
expdp lttfm/lttfm@fgisdb  tables=lttfm.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 lttfm/lttfm@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job

4
、导出方案
Expdp lttfm/lttfm DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=lttfm,gwm

5
、导出整个数据库:
expdp lttfm/lttfm@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job


使用exclude,include导出数据
1
Include导出用户中指定类型的指定对象
--
仅导出lttfm用户下以B开头的所有表,包含与表相关的索引,备注等。不包含过程等其它对象类型:
expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=TABLE:\"LIKE \'B%\'\"

--导出lttfm用户下排除B$开头的所有表:
expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=TABLE:\"NOT LIKE \'B$%\'\"

--仅导出lttfm用户下的所有存储过程:
expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job include=PROCEDURE;   

2
Exclude导出用户中指定类型的指定对象
--
导出lttfm用户下除TABLE类型以外的所有对象,如果表不导出那么与表相关的索引,约束等与表有关联的对象类型也不会被导出:
expdp lttfm/lttfm@fgisdb schemas=lttfm dumpfile=exclude_1.dmp logfile=exclude_1.log directory=dir_dp job_name=my_job exclude=TABLE;

--导出lttfm用户下排除B$开头的所有表:
expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job exclude=TABLE:\"LIKE\'b$%\'\";

--导出lttfm用户下的所有对象,但是对于表类型只导出以b$开头的表:
expdp lttfm/lttfm@fgisdb dumpfile=include_1.dmp logfile=include_1.log directory=dir_dp job_name=my_job exclude=TABLE:\"NOT LIKE \'b$%\'\";


IMPDP介绍

IMPDP命令行选项与EXPDP有很多相同的,不同的有:
1REMAP_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
文件中的表,此文件是以gwm用户按schemas=gwm导出的:
impdp gwm/gwm@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 gwm/gwm@fgisdb schemas=gwm dumpfile =expdp_test.dmp logfile=expdp_test.log directory=dir_dp job_name=my_job

3
、不通过expdp的步骤生成dmp文件而直接导入的方法:
--
从源数据库中向目标数据库导入表p_street_area
impdp gwm/gwm 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参数
  --
导出gwm用户下的所有数据
expdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp SCHEMAS=gwm
注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容
--
以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下
impdp system/orcl directory=data_pump_dir dumpfile=gwm.dmp remap_tablespace=gmapdata:gcomm


expimp
exp的关键字说明:
关键字   说明 (默认值)        
------------------------------
USERID  
用户名/口令            
BUFFER  
数据缓冲区大小         
FILE    
输出文件 (EXPDAT.DMP)  
COMPRESS 
导入到一个区 (Y)      
GRANTS   
导出权限 (Y)          
INDEXES  
导出索引 (Y)          
DIRECT   
直接路径 (N)  --直接导出速度较快        
LOG     
屏幕输出的日志文件      
ROWS     
导出数据行 (Y)        
CONSISTENT
交叉表的一致性 (N)   
FULL       
导出整个文件 (N)
OWNER     
所有者用户名列表
TABLES    
表名列表
RECORDLENGTH   IO
记录的长度
INCTYPE    
增量导出类型
RECORD      
跟踪增量导出 (Y)
TRIGGERS    
导出触发器 (Y)
STATISTICS   
分析对象 (ESTIMATE)
PARFILE     
参数文件名
CONSTRAINTS 
导出的约束条件 (Y)
OBJECT_CONSISTENT   
只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK            
x 行显示进度 (0)
FILESIZE            
每个转储文件的最大大小
FLASHBACK_SCN       
用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME      
用于获取最接近指定时间的 SCN 的时间
QUERY               
用于导出表的子集的 select 子句
RESUMABLE           
遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME      
用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT    RESUMABLE
的等待时间
TTS_FULL_CHECK      
TTS 执行完整或部分相关性检查
TABLESPACES         
要导出的表空间列表
TRANSPORT_TABLESPACE
导出可传输的表空间元数据 (N)
TEMPLATE            
调用 iAS 模式导出的模板名

常用的exp关键字

1full用于导出整个数据库,在rows=n一起使用,导出整个数据库的结构。
  
如:exp userid=gwm/gwm file=/test.dmp log=test.log full=y rows=n direct=y
2
OWNERTABLES,用于定义exp导出的对象,可加上query条件设置导出的行数
  
如:exp userid=gwm/gwm file=/test.dmp log=test.log owner=gwm table=(table1,table2)  query="'where rownum<11'"
3
bufferfeedback 若导出数据较大,考虑使用这两个参数。
  
如:exp userid=gwm/gwm file=/test.dmp log=test.log feedback=10000 buffer=100000000 tables=(table1,table2)
4
filelog 用于指定备份的dmp名称和log名称
5
compress 不压缩导出数据的内容,默认y
6
filesize 若导出的数据文件大,应该用该参数,限制文件大小不要超过2g
  
如:exp userid=gwm/gwm file=/test1,test2,test3,test4,test5 filesize=2G log=test.log
      
这样将创建test1.dmp,test2.dmp等,每个文件大小为2g

 

 imp关键字说明
关键字   说明 (默认值)        关键字      说明 (默认值)
-------------------------------------------------------------
USERID  
用户名/口令           FULL       导入整个文件 (N)
BUFFER  
数据缓冲区大小        FROMUSER    所有者用户名列表
FILE    
输入文件 (EXPDAT.DMP)  TOUSER     用户名列表
SHOW    
只列出文件内容 (N)     TABLES      表名列表
IGNORE  
忽略创建错误 (N)    RECORDLENGTH  IO 记录的长度
GRANTS  
导入权限 (Y)          INCTYPE     增量导入类型
INDEXES  
导入索引 (Y)         COMMIT       提交数组插入 (N)
ROWS    
导入数据行 (Y)        PARFILE      参数文件名
LOG    
屏幕输出的日志文件    CONSTRAINTS    导入限制 (Y)

DESTROY               
覆盖表空间数据文件 (N)
INDEXFILE             
将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 
跳过不可用索引的维护 (N)
FEEDBACK              
x 行显示进度 (0)
TOID_NOVALIDATE       
跳过指定类型 ID 的验证
FILESIZE              
每个转储文件的最大大小
STATISTICS            
始终导入预计算的统计信息
RESUMABLE             
在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME        
用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT      RESUMABLE
的等待时间
COMPILE               
编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION 
导入流的一般元数据 (Y)
STREAMS_INSTANTIATION 
导入流实例化元数据 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE
导入可传输的表空间元数据 (N)
TABLESPACES
将要传输到数据库的表空间
DATAFILES
将要传输到数据库的数据文件
TTS_OWNERS
拥有可传输表空间集中数据的用户

 备注:

INCTYPE     增量导入类型该参数到9i已废弃,我使用的是oracle11g做的实验,发现该参数已无法使用。如下实验所示:

C:\Users\thinkpad>imp fyzh_ora/FYZH_ORA file=rm_trs_seg.dmp log=rm_trs_seg.log f
romuser=ltwebgis inctype=restore

Import: Release 11.1.0.7.0 - Production on
星期二 1 10 22:18:14 2012
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
警告: 这些对象由 LTWEBGIS 导出, 而不是当前用户
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
IMP-00021: INCTYPE
参数已废弃
IMP-00083:
转储文件中不包含增量导出
IMP-00000:
未成功终止导入

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值