Oracle 数据库迁移方案选择
Oracle 数据库迁移方案选择
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
数据库迁移方案选择指南[1]:
详细见:Oracle 零停机迁移方案对比。
2. 方案对比
| 方案 | 停机 | 跨平台 | 跨版本 | 数据量 | 成本 |
|---|---|---|---|---|---|
| Data Pump | 长 | 是 | 是 | 小 | 低 |
| RMAN | 中 | 否 | 有限 | 中 | 低 |
| TTS / XTTS | 短 | 是 | 有限 | 中大 | 低 |
| Data Guard | 切换 | 否 | 有限 | 大 | 中 |
| GoldenGate | 零 | 是 | 是 | 任意 | 高 |
| ZDM | 零 | 是 | 是 | 任意 | 中 |
3. Data Pump
3.1 适用
- 小数据
- 跨平台
- 跨版本
- 重建
3.2 流程
# 源导出
expdp system/pwd DIRECTORY=dpump_dir DUMPFILE=full.dmp FULL=Y
# 传输
scp full.dmp target:/tmp/
# 目标导入
impdp system/pwd DIRECTORY=dpump_dir DUMPFILE=full.dmp FULL=Y
详细见:Oracle Data Pump 全集。
3.3 优劣
+ 简单
+ 跨平台
+ 跨版本
+ 重整数据
- 停机长
- 大数据慢
4. RMAN
4.1 适用
- 同平台
- 同版本
- 中等数据
- 备份恢复
4.2 流程
# 源备份
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
# 传输
scp backup target:/backup/
# 目标恢复
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
详细见:Oracle RMAN 备份恢复。
4.3 优劣
+ 物理
+ 快
+ 备份恢复
- 同平台
- 同版本
5. TTS / XTTS
5.1 适用
- 跨平台
- 同版本
- 大数据
- 短停机
5.2 流程
1. 初始全量传输
2. 持续增量
3. 停机
4. 最后增量
5. 传输元数据
6. 切换
5.3 优劣
+ 跨平台
+ 短停机
+ 大数据
- 表空间自包含
- Endian
详细见:Oracle TTS 传输表空间详解。
6. Data Guard
6.1 适用
- 同平台
- 同版本
- 大数据
- 切换停机
6.2 流程
1. 创建 Standby
2. 同步
3. Switchover
4. 应用切换
5. 旧主关闭
6.3 优劣
+ 简单
+ 切换快
+ 备份
- 同平台
- 同版本
7. GoldenGate
7.1 适用
- 跨平台
- 跨版本
- 异构
- 零停机
7.2 流程
1. 安装 GG
2. 启用补充日志
3. 初始数据
4. 启动 Extract
5. 启动 Replicat
6. 监控 lag
7. 切换
详细见:Oracle GoldenGate 全集。
7.3 优劣
+ 零停机
+ 跨平台
+ 异构
- 复杂
- 成本
8. ZDM
8.1 适用
- 物理迁移
- OCI / 同平台
- 零停机
8.2 流程
zdmcli migrate database -sourcesid orcl -sourcenode src -targetnode tgt -rsp /tmp/zdm.rsp -eval
zdmcli migrate database ...
详细见:Oracle Cloud 部署详解。
8.3 优劣
+ 自动化
+ 零停机
+ OCI
- 物理
- OCI 专用
9. 选择决策树
是否跨平台?
├─ 是
│ ├─ 数据量?
│ │ ├─ 小:Data Pump
│ │ ├─ 中:XTTS
│ │ └─ 大:GoldenGate / ZDM
└─ 否
├─ 同版本?
│ ├─ 是:Data Guard / RMAN
│ └─ 否:升级路径
└─ 停机要求?
├─ 零:GoldenGate
├─ 短:XTTS / Data Guard
└─ 长:Data Pump
10. 评估因素
10.1 业务
- 停机时间
- 数据量
- 关键程度
10.2 技术
- 平台
- 版本
- 网络
10.3 资源
- 成本
- 人员
- 时间
11. 切换流程
11.1 准备
1. 验证同步
2. 应用停止
3. 最终同步
4. 应用配置更新
11.2 执行
1. 停源写入
2. 最终同步
3. 切换连接
4. 验证
5. 应用启动
11.3 验证
-- 数据
SELECT 'EMPLOYEES', COUNT(*) FROM employees;
-- 对象
SELECT COUNT(*) FROM dba_objects WHERE status = 'VALID';
-- 性能
@?/rdbms/admin/awrddrpt.sql
11.4 回滚
- ZDM:ROLLBACK
- GoldenGate:反向
- Data Guard:Switchover 回
- Data Pump:原库保留
12. 风险
12.1 数据丢失
- 同步验证
- 最终同步
- 业务确认
12.2 性能问题
- 测试
- AWR 对比
- 优化
12.3 应用问题
- 配置更新
- 字符集
- 时区
13. 常见坑
13.1 字符集
SELECT * FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET';
-- 源/目标必须一致
13.2 时区
- DB Timezone
- OS Timezone
- 一致
13.3 字符串排序
- NLS_SORT
- 排序变化
13.4 统计信息
- 重新收集
- 直方图
14. 最佳实践
- 测试环境验证:可行
- 业务低峰切换:影响小
- 回滚方案:必备
- 监控同步:及时
- 数据验证:完整
- 性能对比:评估
- 应用配置:更新
- 团队培训:能力
- 文档化:流程
- 应急方案:备用
15. 参考资料
[1] Oracle Cloud Infrastructure Database Migration Guide https://docs.oracle.com/en/cloud/paas/database-migration/