Oracle Data Guard 滚动升级详解
Oracle Data Guard 滚动升级详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
Data Guard 滚动升级实现零或最小停机[1]:
详细见:Oracle Data Guard 架构详解、Oracle Switchover 详解。
2. 优势
2.1 零/最小停机
- 业务切换
- 升级
- 切回
2.2 风险低
- 测试验证
- 回退
- 安全
2.3 灵活
- 异构
- 版本
- 平台
3. 前提
3.1 逻辑备库
- SQL Apply
- 可读写
- 适合滚动
3.2 物理备库
- 11g+ 部分支持
- 限制
- 检查
3.3 版本
- 兼容性
- 升级路径
- 检查
4. 逻辑备库滚动升级
4.1 流程
1. 升级逻辑备库软件
2. SQL Apply 同步
3. Switchover(逻辑备库为主)
4. 升级原主库软件
5. Switchover 回
6. 验证
4.2 步骤
# 1. 停止逻辑备库 SQL Apply
ALTER DATABASE STOP LOGICAL STANDBY APPLY;
# 2. 升级逻辑备库软件
# 安装新版本
# 升级数据字典
# 3. 启动 SQL Apply
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
# 4. Switchover
DGMGRL> SWITCHOVER TO stby;
# 5. 升级原主库
# 安装新版本
# 升级数据字典
# 6. Switchover 回
DGMGRL> SWITCHOVER TO prod;
# 7. 验证
5. 物理备库滚动升级
5.1 限制
- 11g+ 部分支持
- Patch Set 更新
- 检查
5.2 流程
1. 升级备库软件
2. 重启备库
3. 升级主库软件
4. Switchover
5. 升级原主库
6. Switchover 回
6. 升级前检查
6.1 兼容性
-- 主库
SELECT * FROM v$version;
-- 备库
SELECT * FROM v$version;
6.2 GAP
SELECT * FROM v$archive_gap;
-- 确保无 GAP
6.3 状态
DGMGRL> SHOW CONFIGURATION;
7. 升级前准备
7.1 备份
- 主备库备份
- RMAN
- 验证
7.2 测试
- 测试环境验证
- 演练
- 文档
7.3 通知
- 业务
- 维护窗口
- 计划
8. 升级逻辑备库
8.1 停止 SQL Apply
-- 逻辑备库
ALTER DATABASE STOP LOGICAL STANDBY APPLY;
8.2 升级
# 安装新版本
./runInstaller
# 升级数据字典
sqlplus / as sysdba
STARTUP UPGRADE;
@?/rdbms/admin/catupgrd.sql
8.3 启动
ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;
9. Switchover
9.1 验证
DGMGRL> SHOW CONFIGURATION;
DGMGRL> SHOW DATABASE prod;
DGMGRL> SHOW DATABASE stby;
9.2 执行
DGMGRL> SWITCHOVER TO stby;
9.3 验证
- 应用连接
- 数据
- 业务
10. 升级原主库
10.1 升级
# 安装新版本
./runInstaller
# 升级数据字典
sqlplus / as sysdba
STARTUP UPGRADE;
@?/rdbms/admin/catupgrd.sql
10.2 验证
- 数据字典
- 对象
- 编译
11. Switchover 回
11.1 执行
DGMGRL> SWITCHOVER TO prod;
11.2 验证
- 状态
- 数据
- 业务
11.3 完成
- 升级完成
- 两库新版本
- 验证
12. 回退
12.1 条件
- 升级失败
- 业务问题
- 回退
12.2 方式
- Switchover 回
- 或重建
- 评估
12.3 测试
- 充分
- 验证
- 文档
13. 监控
13.1 状态
DGMGRL> SHOW CONFIGURATION;
13.2 延迟
SELECT * FROM v$dataguard_stats;
13.3 应用
- 连接
- 业务
- 性能
14. 常见问题
14.1 SQL Apply 错误
- 不支持对象
- 检查
- 跳过
14.2 Switchover 失败
- 状态
- GAP
- 修复
14.3 性能
- 监控
- 优化
- 评估
15. 最佳实践
- 测试:演练
- 备份:升级前
- 兼容性:检查
- GAP:确保无
- Broker:使用
- 低峰:执行
- 监控:状态
- 回退:预案
- 文档:流程
- 演练:定期
16. 参考资料
[1] Oracle Database Upgrade Guide 19c, “Rolling Upgrades” https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/