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. 最佳实践
- 评估:充分
- 测试:演练
- 备份:迁移前
- 验证:完整
- 回退:预案
- 监控:过程
- 文档:详细
- 团队:协同
- 时间窗口:合理
- 复盘:总结
17. 参考资料
[1] Oracle Database Migration Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/