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. 最佳实践

  1. 测试:演练
  2. 备份:升级前
  3. 兼容性:检查
  4. GAP:确保无
  5. Broker:使用
  6. 低峰:执行
  7. 监控:状态
  8. 回退:预案
  9. 文档:流程
  10. 演练:定期

16. 参考资料

[1] Oracle Database Upgrade Guide 19c, “Rolling Upgrades” https://docs.oracle.com/en/database/oracle/oracle-database/19/upgrd/