Oracle expdp/impdp工具使用

Oracle数据泵

一、数据泵的作用:

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

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

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

4.实现表空间转移

二 、数据泵的特点与传统导出导入的区别

1.EXP和IMP是客户段工具程序, EXPDP和IMPDP是服务端的工具程序

2.EXP和IMP效率比较低. EXPDP和IMPDP效率高

3.数据泵功能强大并行、过滤、转换、压缩、加密、交互等等

4.数据泵不支持9i以前版本, EXP/IMP短期内还是比较适用

5.同exp/imp数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.

三、DATA PUMP的体系结构:

四、EXPDP语法介绍:

数据泵导出实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:

示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制导出的运行方式。具体方法是: 在 ‘expdp‘ 命令后输入
各种参数。要指定各参数, 请使用关键字:

格式:  expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
   示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字               说明 (默认)
------------------------------------------------------------------------------
ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。
COMPRESSION           减小有效的转储文件内容的大小
                      关键字值为: (METADATA_ONLY) 和 NONE。
CONTENT               指定要卸载的数据, 其中有效关键字为:
                      (ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY             供转储文件和日志文件使用的目录对象。
DUMPFILE              目标转储文件 (expdat.dmp) 的列表,
                      例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。
ESTIMATE              计算作业估计值, 其中有效关键字为:
                      (BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY         在不执行导出的情况下计算作业估计值。
EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。
FILESIZE              以字节为单位指定每个转储文件的大小。
FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。
FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。
FULL                  导出整个数据库 (N)。
HELP                  显示帮助消息 (N)。
INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME              要创建的导出作业的名称。
LOGFILE               日志文件名 (export.log)。
NETWORK_LINK          链接到源系统的远程数据库的名称。
NOLOGFILE             不写入日志文件 (N)。
PARALLEL              更改当前作业的活动 worker 的数目。
PARFILE               指定参数文件。
QUERY                 用于导出表的子集的谓词子句。
SAMPLE                要导出的数据的百分比;
SCHEMAS               要导出的方案的列表 (登录方案)。
STATUS                在默认值 (0) 将显示可用时的新状态的情况下,
                      要监视的频率 (以秒计) 作业状态。
TABLES                标识要导出的表的列表 - 只有一个方案。
TABLESPACES           标识要导出的表空间的列表。
TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。
VERSION               要导出的对象的版本, 其中有效关键字为:
                      (COMPATIBLE), LATEST 或任何有效的数据库版本。

下列命令在交互模式下有效。
注: 允许使用缩写

命令               说明
------------------------------------------------------------------------------
ADD_FILE              向转储文件集中添加转储文件。
CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT           退出客户机会话并使作业处于运行状态。
FILESIZE              后续 ADD_FILE 命令的默认文件大小 (字节)。
HELP                  总结交互命令。
KILL_JOB              分离和删除作业。
PARALLEL              更改当前作业的活动 worker 的数目。
                      PARALLEL=<worker 的数目>。
START_JOB             启动/恢复当前作业。
STATUS                在默认值 (0) 将显示可用时的新状态的情况下,
                      要监视的频率 (以秒计) 作业状态。
                      STATUS[=interval]
STOP_JOB              顺序关闭执行的作业并退出客户机。
                      STOP_JOB=IMMEDIATE 将立即关闭
                      数据泵作业。

五、IMPDP语法介绍:

数据泵导入实用程序提供了一种用于在 Oracle 数据库之间传输
数据对象的机制。该实用程序可以使用以下命令进行调用:

示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

您可以控制导入的运行方式。具体方法是: 在 ‘impdp‘ 命令后输入
各种参数。要指定各参数, 请使用关键字:

格式:  impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
     示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

USERID 必须是命令行中的第一个参数。

关键字               说明 (默认)
------------------------------------------------------------------------------
ATTACH                连接到现有作业, 例如 ATTACH [=作业名]。
CONTENT               指定要加载的数据, 其中有效关键字为:
                      (ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY             供转储文件, 日志文件和 sql 文件使用的目录对象。
DUMPFILE              要从 (expdat.dmp) 中导入的转储文件的列表,
                      例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD   用于访问加密列数据的口令关键字。
                      此参数对网络导入作业无效。
ESTIMATE              计算作业估计值, 其中有效关键字为:
                      (BLOCKS) 和 STATISTICS。
EXCLUDE               排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。
FLASHBACK_SCN         用于将会话快照设置回以前状态的 SCN。
FLASHBACK_TIME        用于获取最接近指定时间的 SCN 的时间。
FULL                  从源导入全部对象 (Y)。
HELP                  显示帮助消息 (N)。
INCLUDE               包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME              要创建的导入作业的名称。
LOGFILE               日志文件名 (import.log)。
NETWORK_LINK          链接到源系统的远程数据库的名称。
NOLOGFILE             不写入日志文件。
PARALLEL              更改当前作业的活动 worker 的数目。
PARFILE               指定参数文件。
QUERY                 用于导入表的子集的谓词子句。
REMAP_DATAFILE        在所有 DDL 语句中重新定义数据文件引用。
REMAP_SCHEMA          将一个方案中的对象加载到另一个方案。
REMAP_TABLESPACE      将表空间对象重新映射到另一个表空间。
REUSE_DATAFILES       如果表空间已存在, 则将其初始化 (N)。
SCHEMAS               要导入的方案的列表。
SKIP_UNUSABLE_INDEXES 跳过设置为无用索引状态的索引。
SQLFILE               将所有的 SQL DDL 写入指定的文件。
STATUS                在默认值 (0) 将显示可用时的新状态的情况下,
                      要监视的频率 (以秒计) 作业状态。
STREAMS_CONFIGURATION 启用流元数据的加载
TABLE_EXISTS_ACTION   导入对象已存在时执行的操作。
                      有效关键字: (SKIP), APPEND, REPLACE 和 TRUNCATE。
TABLES                标识要导入的表的列表。
TABLESPACES           标识要导入的表空间的列表。
TRANSFORM             要应用于适用对象的元数据转换。
                      有效的转换关键字: SEGMENT_ATTRIBUTES, STORAGE
                      OID 和 PCTSPACE。
TRANSPORT_DATAFILES   按可传输模式导入的数据文件的列表。
TRANSPORT_FULL_CHECK  验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中加载元数据的表空间的列表。
                      仅在 NETWORK_LINK 模式导入操作中有效。
VERSION               要导出的对象的版本, 其中有效关键字为:
                      (COMPATIBLE), LATEST 或任何有效的数据库版本。
                      仅对 NETWORK_LINK 和 SQLFILE 有效。

下列命令在交互模式下有效。
注: 允许使用缩写

命令               说明 (默认)
------------------------------------------------------------------------------
CONTINUE_CLIENT       返回到记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT           退出客户机会话并使作业处于运行状态。
HELP                  总结交互命令。
KILL_JOB              分离和删除作业。
PARALLEL              更改当前作业的活动 worker 的数目。
                      PARALLEL=<worker 的数目>。
START_JOB             启动/恢复当前作业。
                      START_JOB=SKIP_CURRENT 在开始作业之前将跳过
                      作业停止时执行的任意操作。
STATUS                在默认值 (0) 将显示可用时的新状态的情况下,
                      要监视的频率 (以秒计) 作业状态。
                      STATUS[=interval]
STOP_JOB              顺序关闭执行的作业并退出客户机。
                      STOP_JOB=IMMEDIATE 将立即关闭
                      数据泵作业。

六、实践操作:

1. 使用目录:DATA_PUMP_DIR

[sql] view plaincopy

  1. SQL> select * from dba_directories;
  2. OWNER                          DIRECTORY_NAME
  3. ------------------------------ ------------------------------
  4. DIRECTORY_PATH
  5. ----------------------------------------------------------------
  6. SYS                            ADMIN_DIR
  7. C:\ADE\aime_10.2_nt_push\oracle/md/admin
  8. SYS                            DATA_PUMP_DIR
  9. E:\admin\orcl\dpdump\
  10. SYS                            WORK_DIR
  11. C:\ADE\aime_10.2_nt_push\oracle/work
  12. SQL> grant read, write on directory data_pump_dir to scott;
  13. 授权成功。

2.EXPDP用法举例:

1)按用户导

expdp scott/[email protected] schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

2)并行进程parallel

expdp scott/[email protected] directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3

3)按表名导

expdp scott/[email protected] TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

4)按查询条件导

expdp scott/[email protected] directory=dpdata1 dumpfile=expdp.dmp Tables=emp query=‘WHERE deptno=20‘;

5)按表空间导

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

6)导整个数据库

expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

3.IMPDP用法举例:

1)导到指定用户下

impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;

2)改变表的owner

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;

3)导入表空间

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;

4)导入数据库

impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

5)追加数据

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION

4. 案例:将数据库A中HR用户下所有对象导入到SCOTT用户下:

1)导出HR方案:

[sql] view plaincopy

  1. expdp system/[email protected] schemas=hr dumpfile=hr.dmp DIRECTORY=data_pump_dir nologfle=y;

2)将hr.dmp导入SCOTT方案:

[sql] view plaincopy

  1. 启动 "SYSTEM"."SYS_IMPORT_FULL_01":  system/******** dumpfile=hr.dmp directory=data_pump_dir remap_schema=hr:scott
  2. 处理对象类型 SCHEMA_EXPORT/USER
  3. ORA-31684: 对象类型 USER:"SCOTT" 已存在
  4. 处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
  5. 处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
  6. 处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
  7. 处理对象类型 SCHEMA_EXPORT/TABLESPACE_QUOTA
  8. 处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
  9. 处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
  10. 处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
  11. 处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
  12. . . 导入了 "SCOTT"."COUNTRIES"                         6.085 KB      25 行
  13. . . 导入了 "SCOTT"."DEPARTMENTS"                       6.632 KB      27 行
  14. . . 导入了 "SCOTT"."EMPLOYEES"                         15.76 KB     107 行
  15. . . 导入了 "SCOTT"."JOBS"                              6.609 KB      19 行
  16. . . 导入了 "SCOTT"."JOB_HISTORY"                       6.585 KB      10 行
  17. . . 导入了 "SCOTT"."LOCATIONS"                         7.710 KB      23 行
  18. . . 导入了 "SCOTT"."REGIONS"                           5.289 KB       4 行
  19. 处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
  20. 处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
  21. 处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
  22. 处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
  23. 处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
  24. 处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
  25. 处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
  26. 处理对象类型 SCHEMA_EXPORT/TABLE/TRIGGER
  27. 处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
  28. 作业 "SYSTEM"."SYS_IMPORT_FULL_01" 已经完成, 但是有 1 个错误 (于 15:32:01 完成)

3)效果就是HR下面的对象都复制到了SCOTT用户下:

[sql] view plaincopy

  1. SQL> select * from scott.employees where rownum<10;
  2. EMPLOYEE_ID FIRST_NAME           LAST_NAME                 EMAIL
  3. ----------- -------------------- ------------------------- ------------------
  4. 100 Steven               King                      SKING
  5. 101 Neena                Kochhar                   NKOCHHAR
  6. 102 Lex                  De Haan                   LDEHAAN
  7. 103 Alexander            Hunold                    AHUNOLD
  8. 104 Bruce                Ernst                     BERNST
  9. 105 David                Austin                    DAUSTIN
  10. 106 Valli                Pataballa                 VPATABAL
  11. 107 Diana                Lorentz                   DLORENTZ
  12. 108 Nancy                Greenberg                 NGREENBE
  13. 已选择9行。
时间: 2024-10-17 23:55:25

Oracle expdp/impdp工具使用的相关文章

Oracle expdp/impdp 工具的使用

Oracle数据泵 注:高版本ORACLE向低版本的数据迁移还得加上VERSION 一.数据泵的作用: 1.实现逻辑备份和逻辑恢复 2.在数据库用户之间移动对象 3.在数据库之间移动对象 4.实现表空间转移 二 .数据泵的特点与传统导出导入的区别 1.EXP和IMP是客户段工具程序, EXPDP和IMPDP是服务端的工具程序 2.EXP和IMP效率比较低. EXPDP和IMPDP效率高 3.数据泵功能强大并行.过滤.转换.压缩.加密.交互等等 4.数据泵不支持9i以前版本, EXP/IMP短期内

ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP命令详细对比

ORACLE EXPDP IMPDP数据导入导出命令详解及同EXP IMP 命令详细对比 一.EXPDP IMPDP EXP IMP 可以实现 1.可以实现逻辑备份和逻辑恢复 2.可以在数据库用户之间移动对象 3.可以在数据库之间移动对象 4.可以实现表空间转移 二.EXPDP的命令详解 C:\Users\Administrator>20:42:32.90>expdp help=y Export: Release 11.2.0.1.0 - Production on 星期六 10月 10 09

Oracle expdp/impdp导出导入命令及数据库备份

Oracle expdp/impdp导出导入命令及数据库备份 使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用. IMP只适用于EXP导出的文件,不适用于EXPDP导出文件:IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件. expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输

Oracle expdp/impdp 使用示例

1. 创建目录 使用数据泵之前,需要创建一个存放文件的目录. 这个目录要写入Oracle的数据字典中才能识别. (1)先查看一下已经存在的目录: SQL> col owner format a5 SQL> col directory_name format a25 SQL> select * from dba_directories; OWNER DIRECTORY_NAME            DIRECTORY_PATH ----- ------------------------

ORACLE expdp/impdp详解

ORCALE10G提供了新的导入导出工具,数据泵.Oracle官方对此的形容是:Oracle DataPump technology enables Very High-Speed movement of data and metadata from one database to another.其中Very High-Speed是亮点.先说数据泵提供的主要特性(包括,但不限于):1. 支持并行处理导入.导出任务2. 支持暂停和重启动导入.导出任务3. 支持通过Database Link的方式

expdp/impdp工具使用

现在是一个信息时代,数据规模和数据量的增长以爆炸式的速度扩张.之前几百M或数G规模的数据量都堪称庞大. 现如今测试系统所占空间都是这一数据的几十倍甚至百倍.原生imp/exp工就这两匹老马在处理这么大的数据量就力不从心了. 从10g开始,data pump横空出世,中文名叫数据泵.虽然oracle对自己产品的宣传一向有夸大的传统, 不过大家要理解,有了前面原生的exp/imp工具的铺垫,对比来看,数据泵的导入和导出,有了很大的提升. 关于 数据泵的好处,请大家自行百度一下. data pump

Oracle expdp/impdp常用示例整理

expdp不依赖和参考NLS_LANG的设置,而是完全按照数据库本身的字符集进行转换, 平时数据量不大时一直采用exp/imp导数据库,到了数据量大的时候expdp/impdp就看到效果了,一次exp导出28G的DMP文件用了3个小时,采用EXPDP用了20分钟. 1. 创建测试数据 SQL> create tablespace DATA datafile '/u01/app/oracle/oradata/orcl/DATA.dbf' size 10m autoextend on next 10

详解oracle 12c通过数据泵expdp/impdp工具实现对数据备份、恢复

简介 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用1.实现逻辑备份和逻辑恢复2.数据库用户之间移动对象3.数据库之间移动对象4.实现表空间搬移 实验环境 系统环境:centos7.4Oracle服务IP地址:192.168.100.99光盘挂载目录:/mnt/sr0安装相关目录:/opt 命令步骤 一.创建测试用户并授权 1.创建数据备份目录 [[email protected] ~]# mkdir /opt/

ORACLE expdp/impdp导出实例

服务器上以sys或system超级管理员登录. SQL>create directory expdp_dir as '/home/oracle/dmpdata';(dmpdata 需要建立.赋予目录权限) SQL>grant read,write on directory expdp_dir to hwifi;(数据库username) 导出表中的部分记录(query): expdp hwifi/123456 dumpfile=test.dmp directory=expdp_dir tabl