`
mengxiangfeiyan
  • 浏览: 15961 次
社区版块
存档分类
最新评论

expdp 详解及实例

阅读更多
 
1.数据泵expdp导出工具与传统的exp导出工具的区别
1)exp是客户端程序,既可以在客户端使用,也可以在服务器端使用;
2)expdp是服务器端工具,只能在ORACLE服务器端使用,不能在客户端使用;
3)这两个工具生成的备份文件不能被对方与之对应的导入工具使用;
4)expdp在灵活性和功能性上与exp相比,有质上的飞跃。

2.expdp命令行选项列表
使用“-help”选项获得expdp命令可用的选项列表和简单的注释信息。
ora10g@linux5 /expdp$ expdp help=y
……
Keyword               Description (Default)
------------------------------------------------------------------------------
ATTACH                Attach to existing job, e.g. ATTACH [=job name].
COMPRESSION           Reduce size of dumpfile contents where valid
                      keyword values are: (METADATA_ONLY) and NONE.
CONTENT               Specifies data to unload where the valid keywords are:
                      (ALL), DATA_ONLY, and METADATA_ONLY.
DIRECTORY             Directory object to be used for dumpfiles and logfiles.
DUMPFILE              List of destination dump files (expdat.dmp),
                      e.g. DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ENCRYPTION_PASSWORD   Password key for creating encrypted column data.
ESTIMATE              Calculate job estimates where the valid keywords are:
                      (BLOCKS) and STATISTICS.
ESTIMATE_ONLY         Calculate job estimates without performing the export.
EXCLUDE               Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.
FILESIZE              Specify the size of each dumpfile in units of bytes.
FLASHBACK_SCN         SCN used to set session snapshot back to.
FLASHBACK_TIME        Time used to get the SCN closest to the specified time.
FULL                  Export entire database (N).
HELP                  Display Help messages (N).
INCLUDE               Include specific object types, e.g. INCLUDE=TABLE_DATA.
JOB_NAME              Name of export job to create.
LOGFILE               Log file name (export.log).
NETWORK_LINK          Name of remote database link to the source system.
NOLOGFILE             Do not write logfile (N).
PARALLEL              Change the number of active workers for current job.
PARFILE               Specify parameter file.
QUERY                 Predicate clause used to export a subset of a table.
SAMPLE                Percentage of data to be exported;
SCHEMAS               List of schemas to export (login schema).
STATUS                Frequency (secs) job status is to be monitored where
                      the default (0) will show new status when available.
TABLES                Identifies a list of tables to export - one schema only.
TABLESPACES           Identifies a list of tablespaces to export.
TRANSPORT_FULL_CHECK  Verify storage segments of all tables (N).
TRANSPORT_TABLESPACES List of tablespaces from which metadata will be unloaded.
VERSION               Version of objects to export where valid keywords are:
                      (COMPATIBLE), LATEST, or any valid database version.

The following commands are valid while in interactive mode.
Note: abbreviations are allowed

Command               Description
------------------------------------------------------------------------------
ADD_FILE              Add dumpfile to dumpfile set.
CONTINUE_CLIENT       Return to logging mode. Job will be re-started if idle.
EXIT_CLIENT           Quit client session and leave job running.
FILESIZE              Default filesize (bytes) for subsequent ADD_FILE commands.
HELP                  Summarize interactive commands.
KILL_JOB              Detach and delete job.
PARALLEL              Change the number of active workers for current job.
                      PARALLEL=<number of workers>.
START_JOB             Start/resume current job.
STATUS                Frequency (secs) job status is to be monitored where
                      the default (0) will show new status when available.
                      STATUS[=interval]
STOP_JOB              Orderly shutdown of job execution and exits the client.
                      STOP_JOB=IMMEDIATE performs an immediate shutdown of the
                      Data Pump job.


3.简单给出expdp命令行选项的注释
1)ATTACH
该选项用于与已存在导出作业建立关联。语法如下:
ATTACH [=[schema_name.]job_name]
schema_name表示用户名,job_name表示导出的作业名。注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项。可以通过查询DBA_DATAPUMP_JOBS获得系统中现有的作业信息。
示例如下:
expdp secooler/secooler ATTACH=secooler.export_job

2)COMPRESSION
表示是否压缩数据库对象的元数据,这里只提供两个选项:METADATA_ONLY和NONE。在10g这个版本中这个选项的意义不大,因为元数据本身很小,压缩与否对最终导出的文件大小的影响甚微。11g中对这个选项进行了增强,真正的提供了数据压缩的功能。具体请参考文章《【COMPRESS】11g中表压缩技术的长足进步》(http://space.itpub.net/519536/viewspace-662005)。
COMPRESSION=(METADATA_ONLY | NONE)

3)CONTENT
该选项用于指定要导出的内容。默认值为ALL。
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
当设置CONTENT为ALL时,会导出对象元数据及对象数据;当设置为DATA_ONLY时,只导出对象数据;当设置为METADATA_ONLY时,只导出对象元数据。
示例如下:
expdp secooler/secooler DIRECTORY=dump_dir DUMPFILE=test.dump CONTENT=METADATA_ONLY

4)DIRECTORY
指定转储文件和日志文件所在的目录,给定的参数是一个DIRECTORY数据库对象,是通过CREATE DIRECTORY语句建立的。后文会有这方面的演示。
DIRECTORY=directory_object
示例如下:
expdp secooler/secooler DIRECTORY=dump_dir DUMPFILE=test.dump

5)DUMPFILE
用于指定转储文件的名称,默认名称为expdat.dmp。
DUMPFILE=[directory_object:]file_name [, ...]
directory_object用于指定目录对象名,file_name用于指定转储文件名。如果不给定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象。
这个参数可以结合FILESIZE参数一起使用,达到生成多个转储文件的目的。
注意,如果指定路径下已经存在待生成的导出文件,导出过程中将会报错退出。
expdp secooler/secooler DIRECTORY=dump_dir1 DUMPFILE=dump_dir2:test.dmp

6)ENCRYPTION_PASSWORD
该参数需要和Oracle的透明数据加密特性(TDE)一同使用,因为expdp本身是不支持加解密的。
ENCRYPTION_PASSWORD = password

7)ESTIMATE
用于估算被导出的表占用的空间大小(不包含表的元数据)。默认值是BLOCKS。
ESTIMATE={BLOCKS | STATISTICS}
设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间;设置为STATISTICS时,会根据最近的统计值给出对象占用空间,这种方法的误差会比较大。无论使用哪种选项值,都会有误差。
示例如下:
expdp secooler/secooler DIRECTORY=dump_dir ESTIMATE=STATISTICS  DUMPFILE=test.dump

8)EXTIMATE_ONLY
指定是否只估算导出作业所占用的磁盘空间,默认值为N
ESTIMATE_ONLY={y | n}
设置为Y时,导出操作仅估算对象所占用的磁盘空间,不会执行导出作业,注意此时不要使用DUMPFILE选项;设置为N时,会估算对象所占用的磁盘空间,同时还会执行导出操作。
示例如下:
expdp secooler/secooler ESTIMATE_ONLY=y

9)EXCLUDE
用于控制在导出过程中哪些数据库对象不被导出。
EXCLUDE=object_type[:name_clause] [, ...]
object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象名称。注意EXCLUDE选项和INCLUDE选项不能同时使用。
该选项支持模糊匹配,非常好用的功能。另外,被指定不被导出的表上的约束、索引、触发器等均不会被导出。
示例如下:
expdp secooler/secooler DIRECTORY=dump_dir DUMPFILE=a.dup EXCLUDE=VIEW

10)FILESIZE
限定单个转储文件的最大容量,默认值是0,表示没有文件尺寸的限制。该选项与DUMPFILE选项一同使用。
FILESIZE=integer[B | K | M | G]

11)FLASHBACK_SCN
使用Flashback Query特性指定导出特定SCN时刻的表数据。
FLASHBACK_SCN=scn_value
scn_value用于给出SCN值。注意:FLASHBACK_SCN选项和FLASHBACK_TIME选项不能同时使用。
示例如下:
expdp secooler/secooler DIRECTORY=dump_dir DUMPFILE=test.dmp FLASHBACK_SCN=358523

12)FLASHBACK_TIME
使用Flashback Query特性指定导出特定时间点的表数据。
FLASHBACK_TIME="TO_TIMESTAMP(time-value)"
注意:FLASHBACK_TIME选项和FLASHBACK_SCN选项不能同时使用。
示例如下:
expdp secooler/secooler DIRECTORY=dump_dir DUMPFILE=test.dmp FLASHBACK_TIME="TO_TIMESTAMP('23-09-2010 14:35:00','DD-MM-YYYY HH24:MI:SS')"

13)FULL
是否以全库模式导出数据库。默认为N。
FULL={y | n}
为Y时,表示执行数据库的全库导出。

14)HELP
指定是否显示expdp命令行选项的帮助信息,默认为N
HELP = {y | n}
当设置为y时。会给出expdp的帮助信息,正如文章开始处使用的方法一样。

15)INCLUDE
指定导出哪些数据库对象类型或数据库对象。与EXCLUDE选项用法相同,功能相反。
注意INCLUDE选项和EXCLUDE选项不能同时使用。
INCLUDE = object_type[:name_clause] [, ...]

16)JOB_NAME
指定要导出作业的名称。默认为SYS_EXPORT_[mode]_[nn]
JOB_NAME=jobname_string
对应的作业信息可以通过DBA_DATAPUMP_JOBS视图获得。

17)LOGFILE
指定导出过程中日志文件的名称,默认值为export.log。
LOGFILE=[directory_object:]file_name
directory_object指定目录对象的名称,file_name用于指定导出日志文件的名称。如果不指定directory_object,会自动使用DIRECTORY选项的值。
expdp secooler/secooler DIRECTORY=dump_dir DUMPFILE=test.dmp logfile=test.log

18)NETWORK_LINK
结合数据库链,完成远程数据库对象的导出。
NETWORK_LINK=source_database_link

19)NOLOGFILE
控制是否禁止生成导出日志文件,默认值为N。
如果设置为Y,表示不输出日志。
NOLOGFILE={y | n}

20)PARALLEL
指定执行导出操作的并行度,默认值为1。
PARALLEL=integer
注意,这个参数给出的并行度是一个真正能启用进程数的最大值。具体会启用多少个进程并行处理会受很多因素影响,例如生成转储文件的多少(不能多于文件数)、导出的数据量大小、CPU资源还有系统I/O资源等因素影响。另外,这个参数只有在Oracle 10g的企业版本中才可以使用。

21)PARFILE
指定导出操作使用到的参数文件的名称。使用这个参数可以编写出比较通用的导出脚本。
PARFILE=[directory_path]file_name

22)QUERY
用来指定类似where语句限定导出的记录。相比exp命令的QUERY选项,这里更加的灵活,可以同时针对每张表进行条件限制。
QUERY = [schema.][table_name:] query_clause
因为该参数目的是限制导出数据的多少,因此不能和CONTENT=METADATA_ONLY、ESTIMATE_ONLY还有TRANSPORT_TABLESPACES一起使用。
示例如下:
expdp secooler/secooler directory=dump_dir dumpfiel=test.dmp tables=emp query='WHERE deptno=66'

23)SAMPLE
给出导出表数据的百分比,参数值可以取.000001~100(不包括100)。不过导出过程不会和这里给出的百分比一样精确,是一个近似值。
语法如下:
SAMPLE=[[schema_name.]table_name:]sample_percent
示例如下:
SAMPLE="HR"."EMPLOYEES":50

24)SCHEMAS
按照SCHEMA模式导出,默认为当前用户。很常用,不做更多的解释。
SCHEMAS=schema_name [, ...]

25)STATUS
指定显示导出作业进程的详细状态,默认值为0。
STATUS=[integer]
示例如下:
expdp hr/hr DIRECTORY=dpump_dir1 SCHEMAS=hr,sh STATUS=300

26)TABLES
以表模式导出数据。可以同时导出多个表;支持通配符格式的导出;也支持只导出分区表中的某个分区。
TABLES=[schema_name.]table_name[:partition_name] [, ...]
schema_name用于指定用户名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名。

27)TABLESPACES
指定需要导出哪个表空间中的表数据。注意:Only the tables contained in a specified set of tablespaces are unloaded.也就是说,只有表空间里的表数据会被导出。
TABLESPACES=tablespace_name [, ...]

28)TRANSPORT_FULL_CHECK
用来检查被传输的表空间是否为严格的自包含,默认为N。

29)TRANSPORT_TABLESPACES
指定传输表空间指定的表空间列表。
TABLESPACES=tablespace_name [, ...]

30)VERSION
该选项用来指定数据库生成的转储文件最低兼容的版本,默认值为COMPATIBLE。
VERSION={COMPATIBLE | LATEST | version_string}
当值为COMPATIBLE时,会以初始化参数中COMPATIBLE参数内容为准;为LATEST时,表示最高版本与数据库版本保持一致;version_string是用于指定具体数据库版本的字符串。

4.expdp工具使用示例
使用expdp工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,使用 expdp工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
sys@ora10g> create or replace directory dump_dir as '/expdp';

Directory created.

sys@ora10g> grant read,write on directory dump_dir to sec;

Grant succeeded.

1)导出表(tables)
ora10g@linux5 /expdp$ expdp sec/sec directory=dump_dir dumpfile=tab.dmp tables=test,test1

Export: Release 10.2.0.4.0 - Production on Thursday, 23 September, 2010 21:19:39

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Data Mining and Real Application Testing options
Starting "SEC"."SYS_EXPORT_TABLE_01":  sec/******** directory=dump_dir dumpfile=tab.dmp tables=test,test1
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
. . exported "SEC"."TEST"                                5.242 KB       4 rows
. . exported "SEC"."TEST1"                               5.242 KB       4 rows
Master table "SEC"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SEC.SYS_EXPORT_TABLE_01 is:
  /expdp/tab.dmp
Job "SEC"."SYS_EXPORT_TABLE_01" successfully completed at 21:19:47


2)导出具体用户的数据
ora10g@linux5 /expdp$ expdp sec/sec directory=dump_dir dumpfile=schema.dmp schemas=sec;

Export: Release 10.2.0.4.0 - Production on Thursday, 23 September, 2010 21:23:55

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Data Mining and Real Application Testing options
Starting "SEC"."SYS_EXPORT_SCHEMA_01":  sec/******** directory=dump_dir dumpfile=schema.dmp schemas=sec
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/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
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
. . exported "SEC"."TEST"                                5.242 KB       4 rows
. . exported "SEC"."TEST1"                               5.242 KB       4 rows
. . exported "SEC"."TEST2"                               5.242 KB       4 rows
Master table "SEC"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SEC.SYS_EXPORT_SCHEMA_01 is:
  /expdp/schema.dmp
Job "SEC"."SYS_EXPORT_SCHEMA_01" successfully completed at 21:24:38

3)导出表空间
ora10g@linux5 /expdp$ expdp system/sys directory=dump_dir dumpfile=talespace.dmp tablespaces=sec_d

Export: Release 10.2.0.4.0 - Production on Thursday, 23 September, 2010 21:25:47

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

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TABLESPACE_01":  system/******** directory=dump_dir dumpfile=tablespace.dmp tablespaces=sec_d
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
. . exported "SEC"."TEST"                                5.242 KB       4 rows
. . exported "SEC"."TEST1"                               5.242 KB       4 rows
. . exported "SEC"."TEST2"                               5.242 KB       4 rows
Master table "SYSTEM"."SYS_EXPORT_TABLESPACE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TABLESPACE_01 is:
  /expdp/talespace.dmp
Job "SYSTEM"."SYS_EXPORT_TABLESPACE_01" successfully completed at 21:26:25


4)导出数据库
ora10g@linux5 /expdp$ expdp system/sys directory=dump_dir dumpfile=full.dmp full=y

5.小结
有关10g版本expdp工具选项的详细解释最佳参考资料是Oracle官方文档。链接:http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/dp_export.htm#sthref83
expdp作为一款非常优秀的服务器端逻辑备份工具,为我们完成数据迁移带来了极大的便利。善用之。
分享到:
评论

相关推荐

    oracle expdp&impdp;

    Oracle EXPDP & IMPDP 实例详解 Oracle EXPDP & IMPDP 是 Oracle 数据库中最常用的数据导出和导入工具,它们可以快速地将数据从一个数据库导出到另一个数据库中。EXPDP(Data Pump Export)是 Oracle 10g 及更高...

    exp 与expdp的使用

    ### Oracle 数据库导出工具 exp 与 expdp 的使用详解 #### 一、背景与意义 随着业务的发展,生产环境中的数据库规模日益庞大,从几十GB到几个TB的数据量非常常见。在这种情况下,如何有效地备份数据库成为一个亟待...

    oracle非归档不停机迁移数据的方法—expdp/impdp

    5. **expdp参数详解**: - `full`:指示是否导出完整数据库。 - `schemas`:指定要导出的模式或用户。 - `tablespaces`:指定要导出的表空间。 - `tables`:指定要导出的表。 - `query`:添加导出数据的WHERE...

    Oracle DMP备份文件导入(impdp)导出(expdp)方法

    expdp sys/oracle directory=data_pump_dir dumpfile=mydata.dmp logfile=expdp_mydata.log ``` ### 二、导入(impdp) 1. **命令格式**: ``` impdp [username/password]@[database_connection] directory=dir_...

    oracle数据库的导入导出详解

    ### Oracle数据库的导入导出详解 Oracle数据库作为企业级应用中的关键组件之一,在数据迁移、备份与恢复等场景中扮演着重要角色。本文将详细介绍Oracle数据库的导入导出操作,并通过具体的命令行示例帮助读者更好地...

    Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令

    "Oracle 数据导入导出 imp/exp 命令详解" Oracle 数据导入导出 imp/exp 命令是 Oracle 数据库管理系统的重要组件之一,用于实现数据的导入和导出。imp/exp 命令可以将数据从远程数据库服务器导出到本地的 dmp 文件...

    Oracle创建本地数据库实例及配置.docx

    ### Oracle 创建本地数据库实例及配置详解 #### 一、引言 随着业务需求的变化和技术的发展,不同的场景可能需要使用不同的数据库管理系统。对于那些长期使用 MySQL 数据库的技术人员来说,转向 Oracle 数据库可能会...

    Oracle11g_新特性及常用维护工具详解

    ### Oracle11g新特性及常用维护工具详解 #### 第1章 ORACLE11g体系结构介绍 **1.1 ORACLE11g的后台进程介绍** 在Oracle 11g中,为了确保数据库能够高效稳定地运行,设计了一系列后台进程来支持其核心功能。这些...

    1z0 -042考点详解

    ### IT知识点解析:1Z0-042 考点详解 #### 一、优化器统计信息(Optimizer Statistics) 优化器统计信息是Oracle数据库管理中至关重要的部分,用于帮助查询优化器选择最佳的执行计划。这些统计信息包括: 1. **表...

    oracle常用命令详解

    以下是对"Oracle常用命令详解"文档中可能包含的一些关键知识点的详细介绍: 1. **SQL*Plus命令**: - `SELECT`:用于从表中查询数据,是最基础的SQL命令。 - `INSERT`:用于向表中插入新的记录。 - `UPDATE`:...

    2020_Oracle19c数据迁移图文详解.docx

    ### Oracle 19c 数据迁移图文详解 #### 知识点概述 本文旨在详细介绍如何使用Oracle数据泵技术完成从Oracle 11g到Oracle 19c的数据迁移工作。数据迁移是一个复杂的过程,尤其是在源数据库与目标数据库存在字符集...

    最简单的oracle导入dmp文件实例

    ### 最简单的Oracle导入DMP文件实例详解 #### 一、Oracle DMP文件简介与应用场景 在Oracle数据库管理中,经常需要进行数据迁移或备份恢复操作。为了满足这些需求,Oracle提供了多种工具和技术,其中最常用的就是`...

    Windows下Oracle11g数据泵操作步骤详解图文

    3. **执行导出命令**:退出sqlplus,打开DOS窗口,运行`expdp`命令,指定用户名/密码、连接的数据库实例、导出目录、DUMP文件名、日志文件名以及要导出的模式(或多个模式,用逗号分隔)。例如: ``` expdp system...

    Oracle 中英文PPT详解

    在备份与恢复方面,Oracle支持物理备份(如冷备份和热备份)和逻辑备份(如使用EXPDP/IMPDP工具)。RMAN(恢复管理器)是Oracle提供的强大工具,可用于执行备份、恢复、数据库克隆等操作。 Oracle的性能优化是其...

    oracle数据库导入导出命令

    #### 三、命令格式及参数详解 ##### 1. expdp 命令格式 ```shell expdp [username/password@connect_identifier] [directory|dumpfile|logfile|job_name] [other options] ``` - **username/password@connect_...

    oracle confige details

    Oracle配置详解 Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它在企业级应用中扮演着核心角色。本文将深入探讨Oracle配置的各个方面,帮助读者理解如何有效地管理和优化Oracle数据库环境。 一、...

    Oracle_数据泵导出和导入

    ### Oracle 数据泵导出和导入知识点详解 #### 一、Oracle数据泵概述 **Oracle 数据泵**(Data Pump)是自 Oracle 10g 版本起推出的一种用于数据迁移的强大工具,它提供了比传统 EXPORT 和 IMPORT 工具更为高效、...

Global site tag (gtag.js) - Google Analytics