Oracle Data Pump 全集

Oracle Data Pump 全集

适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

Data Pump 是 Oracle 逻辑备份迁移工具[1]:

特性

  • 高性能
  • 并行
  • 网络模式
  • 选择性

详细见:Oracle Data Pump 详解


2. expdp 导出

2.1 全库

expdp system/pwd DIRECTORY=dpump_dir DUMPFILE=full.dmp 
  FULL=Y PARALLEL=8 COMPRESSION=ALL

2.2 Schema

expdp system/pwd DIRECTORY=dpump_dir DUMPFILE=scott.dmp 
  SCHEMAS=SCOTT,HR

2.3 表

expdp system/pwd DIRECTORY=dpump_dir DUMPFILE=tables.dmp 
  TABLES=SCOTT.EMP,SCOTT.DEPT

2.4 表空间

expdp system/pwd DIRECTORY=dpump_dir DUMPFILE=ts.dmp 
  TABLESPACES=USERS,TOOLS

3. impdp 导入

3.1 全库

impdp system/pwd DIRECTORY=dpump_dir DUMPFILE=full.dmp 
  FULL=Y PARALLEL=8

3.2 Schema

impdp system/pwd DIRECTORY=dpump_dir DUMPFILE=scott.dmp 
  SCHEMAS=SCOTT

3.3 表

impdp system/pwd DIRECTORY=dpump_dir DUMPFILE=tables.dmp 
  TABLES=SCOTT.EMP

3.4 重映射

# Schema 重命名
impdp ... REMAP_SCHEMA=SCOTT:SCOTT_NEW

# 表空间重命名
impdp ... REMAP_TABLESPACE=USERS:USERS_NEW

# 表重命名
impdp ... REMAP_TABLE=SCOTT.EMP:EMP_NEW

4. 选项

4.1 CONTENT

# 全部
CONTENT=ALL

# 仅数据
CONTENT=DATA_ONLY

# 仅元数据
CONTENT=METADATA_ONLY

4.2 EXCLUDE / INCLUDE

# 排除
EXCLUDE=TABLE:"IN ('EMP', 'DEPT')"
EXCLUDE=INDEX
EXCLUDE=VIEW
EXCLUDE=PROCEDURE

# 包含
INCLUDE=TABLE:"LIKE 'EMP%'"
INCLUDE=SCHEMA:"IN ('SCOTT')"

4.3 QUERY

QUERY=SCOTT.EMP:"WHERE dept_id = 10"
QUERY=SCOTT.EMP:"WHERE salary > 5000"

4.4 SAMPLE

SAMPLE=SCOTT.EMP:50  # 50%

4.5 FLASHBACK

FLASHBACK_TIME="TO_TIMESTAMP('2026-07-21 15:00:00', 'YYYY-MM-DD HH24:MI:SS')"
FLASHBACK_SCN=1234567

5. 网络

# 源库 DB Link
CREATE DATABASE LINK source_link 
  CONNECT TO scott IDENTIFIED BY ****** USING 'source';

# 直接导入
impdp system/pwd DIRECTORY=dpump_dir 
  NETWORK_LINK=source_link 
  SCHEMAS=SCOTT

5.2 优势

- 无需 dump 文件
- 直接传输
- 跨库

6. 并行

6.1 PARALLEL

PARALLEL=8

6.2 文件

# 多文件
DUMPFILE=exp_01.dmp, exp_02.dmp, exp_03.dmp
# 或
DUMPFILE=exp_%U.dmp FILESIZE=10G

7. 压缩

7.1 类型

# 全部
COMPRESSION=ALL

# 仅元数据(默认)
COMPRESSION=METADATA_ONLY

# 仅数据
COMPRESSION=DATA_ONLY

# 无
COMPRESSION=NONE

7.2 算法

COMPRESSION_ALGORITHM=BASIC  # 默认
COMPRESSION_ALGORITHM=LOW
COMPRESSION_ALGORITHM=MEDIUM
COMPRESSION_ALGORITHM=HIGH

8. 加密

8.1 类型

ENCRYPTION=ALL
ENCRYPTION=DATA_ONLY
ENCRYPTION=METADATA_ONLY
ENCRYPTION=NONE

8.2 模式

# 密码
ENCRYPTION_MODE=PASSWORD
ENCRYPTION_PASSWORD=******

# 透明
ENCRYPTION_MODE=TRANSPARENT

# 双重
ENCRYPTION_MODE=DUAL

9. 传输表空间(TTS)

9.1 自包含

BEGIN
  DBMS_TTS.TRANSPORT_SET_CHECK('users, tools', TRUE);
END;
/
SELECT * FROM transport_set_violations;

9.2 导出元数据

expdp system/pwd DIRECTORY=dpump_dir DUMPFILE=tts.dmp 
  TRANSPORT_TABLESPACES=users,tools 
  TRANSPORT_FULL_CHECK=Y

9.3 传输

# 复制数据文件
scp users01.dbf tools01.dbf target:/u01/oradata/

# 导入
impdp system/pwd DIRECTORY=dpump_dir DUMPFILE=tts.dmp 
  TRANSPORT_DATAFILES='/u01/oradata/users01.dbf','/u01/oradata/tools01.dbf'

详细见:Oracle TTS 传输表空间


10. 版本兼容

# 兼容版本
VERSION=11.2
VERSION=12.2
VERSION=19.0
VERSION=COMPATIBLE  # 默认
VERSION=LATEST

11. 监控

11.1 视图

SELECT * FROM dba_datapump_jobs;
SELECT * FROM dba_datapump_sessions;

11.2 attach

# attach 任务
expdp system/pwd ATTACH=SYS_EXPORT_SCHEMA_01

# 状态
STATUS

# 停止
KILL_JOB
STOP_JOB

11.3 日志

LOGFILE=exp.log

12. 性能优化

12.1 PARALLEL

- CPU 数
- 磁盘 I/O
- 4-16 典型

12.2 ACCESS_METHOD

# 直接路径(默认)
ACCESS_METHOD=DIRECT_PATH

# 外部表
ACCESS_METHOD=EXTERNAL_TABLE
# 适合:复杂查询/视图/分区

12.3 FILESIZE

- 大文件:性能
- 小文件:管理
- 多文件并行

13. 12c+ 新特性

13.1 VIEW

INCLUDE=VIEW
VIEWS_AS_TABLES=SCOTT.EMP_VIEW

13.2 Partition

# 单分区
TABLES=SCOTT.SALES:SALES_2026

# 子分区
TABLES=SCOTT.SALES:SALES_Q1_2026

13.3 在线重定义

# 在线
impdp ... TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

14. 安全

14.1 DIRECTORY

CREATE DIRECTORY dpump_dir AS '/u01/dpump';
GRANT READ, WRITE ON DIRECTORY dpump_dir TO scott;

14.2 加密

- ENCRYPTION_PASSWORD
- TDE 集成

15. 常见坑与排错

15.1 ORA-39002

- 参数错误
- 检查语法

15.2 ORA-31626 / 31633

- 任务存在
- PURGE
- DBMS_DATAPUMP.PURGE_PROCESS

15.3 ORA-31655

- 无数据
- 检查 INCLUDE/EXCLUDE

15.4 ORA-39154

- 对象不存在
- 检查权限

16. 最佳实践

  1. PARALLEL:性能
  2. COMPRESSION:空间
  3. DIRECTORY 权限:正确
  4. FLASHBACK:一致性
  5. NETWORK_LINK:跨库
  6. TTS:跨平台
  7. EXCLUDE/INCLUDE:选择性
  8. 监控 attach:进度
  9. 测试:可行
  10. 文档化:流程

17. 参考资料

[1] Oracle Database Utilities 19c, “Data Pump” https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump.html