Oracle 数据库迁移方法论详解

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/