Oracle 数据库迁移方法论详解

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


1. 概述

数据库迁移方法论[1]:

详细见:Oracle 数据库迁移到云、Oracle 零停机迁移方案对比。


2. 迁移类型

2.1 同版本

- 硬件更换
- OS 迁移
- 数据中心迁移

2.2 升级

- 11g → 19c
- 19c → 23ai

2.3 跨平台

- Linux → Linux
- AIX → Linux
- Windows → Linux

2.4 到云

- On-prem → OCI
- On-prem → AWS
- On-prem → Azure

3. 方法选择

3.1 决策因素

- 停机时间
- 数据量
- 网络带宽
- 版本/平台
- 复杂度

3.2 方法

方法 停机 数据量 跨平台
Data Pump 长 中 是
RMAN 备份恢复 中 大 否
TTS 短 大 部分
GoldenGate 零 大 是
Data Guard 短 大 否
ZDM 零 大 是
物理迁移 短 大 否

4. Data Pump

4.1 流程

1. 源库导出
2. 传输 dump 文件
3. 目标导入
4. 验证

4.2 适用

- 跨平台
- 跨版本
- 中小数据
- 简单

4.3 限制

- 停机时间长
- 大数据慢

详细见:Oracle Data Pump 全集。


5. RMAN 备份恢复

5.1 流程

1. 源库备份
2. 传输备份
3. 目标恢复
4. 重命名文件
5. RESETLOGS

5.2 适用

- 同平台
- 大数据
- 简单

详细见:Oracle RMAN 备份恢复全集。


6. TTS

6.1 流程

1. 表空间只读
2. Data Pump 导出元数据
3. 传输数据文件
4. 转换(跨平台)
5. Data Pump 导入元数据
6. 表空间读写

6.2 适用

- 大数据
- 短停机
- 跨平台(同字节序)

详细见:Oracle TTS 传输表空间详解。


7. GoldenGate

7.1 流程

1. 初始装载
2. 启动 Extract
3. 启动 Replicat
4. 追平数据
5. 切换应用
6. 停止源端

7.2 适用

- 零停机
- 跨平台
- 跨版本
- 大数据

详细见:Oracle GoldenGate 全集、Oracle 数据库零停机迁移详解。


8. Data Guard

8.1 流程

1. 建立备库
2. 同步
3. Switchover
4. 应用切换

8.2 适用

- 同平台
- 短停机
- 简单

详细见:Oracle Data Guard Switchover 与 Failover 详解。


9. ZDM

9.1 流程

1. 准备 ZDM
2. 全量备份
3. 增量同步
4. 切换
5. 完成

9.2 适用

- 迁移到 OCI
- 零停机
- 自动化

详细见:Oracle 数据库迁移到云。


10. 物理迁移

10.1 流程

1. 关闭源库
2. 复制数据文件
3. 修改控制文件
4. 启动目标

10.2 适用

- 同平台
- 同版本
- 快速

11. 迁移规划

11.1 评估

- 数据量
- 业务需求
- 停机窗口
- 网络

11.2 选择

- 停机 < 1 小时:GoldenGate/ZDM
- 停机 1-8 小时:TTS/RMAN
- 停机 > 8 小时:Data Pump

11.3 测试

- 完整演练
- 性能验证
- 应用测试

12. 迁移步骤

12.1 准备

- 目标环境
- 网络
- 工具
- 文档

12.2 执行

- 按计划
- 监控
- 记录

12.3 验证

- 数据完整性
- 对象数量
- 行数
- 业务测试

12.4 切换

- 应用切换
- DNS
- 监控

12.5 回退

- 预案
- 时间窗口
- 责任人

13. 验证

13.1 数据

-- 行数
SELECT table_name, num_rows FROM user_tables;

-- 对象
SELECT object_type, COUNT(*) FROM user_objects GROUP BY object_type;

-- 校验和
SELECT SUM(DBMS_CRYPTO.HASH(...)) FROM ...;

13.2 性能

-- 统计信息
EXEC DBMS_STATS.GATHER_DATABASE_STATS;

-- 执行计划
EXPLAIN PLAN FOR ...;

13.3 业务

- 应用连接
- 业务流程
- 报表对比

14. 风险管理

14.1 风险

- 数据丢失
- 性能下降
- 应用不兼容
- 停机超时

14.2 缓解

- 测试
- 备份
- 回退预案
- 监控

15. 常见问题

15.1 字符集

- 源 vs 目标
- 转换
- 测试

15.2 时区

- DBTIMEZONE
- 配置一致

15.3 权限

- 用户
- 角色
- 对象权限

15.4 对象

- 无效对象
- 编译
- 测试

16. 最佳实践

  1. 评估:充分
  2. 测试:演练
  3. 备份:迁移前
  4. 验证:完整
  5. 回退:预案
  6. 监控:过程
  7. 文档:详细
  8. 团队:协同
  9. 时间窗口:合理
  10. 复盘:总结

17. 参考资料

[1] Oracle Database Migration Guide 19c
https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/