Oracle ASM Rolling Migration 详解

Oracle ASM Rolling Migration 详解

适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

ASM Rolling Migration 滚动升级[1]:

详细见:Oracle ASM 架构与 AU 详解Oracle Clusterware 架构详解


2. 优势

2.1 零停机

- 节点逐一升级
- 业务不停
- 最小影响

2.2 简化

- 不需要重建
- 保留数据
- 自动化

3. 前提

3.1 集群

- Clusterware 滚动升级
- ASM 滚动
- 数据库滚动

3.2 兼容性

- 同一主版本
- Patch Set 更新
- RU

3.3 跨版本

- 部分支持
- 检查文档

4. 流程

4.1 准备

# 1. 检查
crsctl query crs releaseversion
crsctl query crs softwareversion

# 2. 备份
ocrconfig -manualbackup

4.2 启动滚动模式

# 在所有节点
/opt/oracle/product/19c/crs/install/rootcrs.sh -unlock

4.3 升级 GI

# 新版本
./runInstaller -silent -responseFile upgrade.rsp

4.4 root 升级脚本

# 节点 1
$NEW_HOME/root.sh

# 节点 2(滚动)
$NEW_HOME/root.sh -rocrs

4.5 ASM 升级

# 滚动
asmcmd showclustermode
srvctl stop asm -n node1
srvctl start asm -n node1

5. Patch 升级

5.1 OPatch

opatch auto /tmp/patch -oh $ORACLE_HOME

5.2 节点逐一

# 节点 1
opatch apply -local

# 节点 2
opatch apply -local

5.3 ASM Patch

- ASM 实例
- 滚动
- 兼容

6. 兼容性参数

6.1 compatible.asm

ALTER DISKGROUP data SET ATTRIBUTE 'compatible.asm' = '19.0.0.0';

6.2 compatible.rdbms

ALTER DISKGROUP data SET ATTRIBUTE 'compatible.rdbms' = '19.0.0.0';

6.3 滚动限制

- 滚动期间兼容性低
- 完成后才能升级

7. 数据库滚动

7.1 滚动升级

- 节点 1:停止实例
- 升级软件
- 启动
- 节点 2:...

7.2 Rolling Patch

# 数据库
opatch apply
srvctl stop instance -d prod -i prod1
srvctl start instance -d prod -i prod1

8. Data Guard 滚动

8.1 流程

1. 升级备库软件
2. Failover
3. 升级主库软件
4. Switchover 回

8.2 零停机

- 业务切换
- 升级
- 切回

详细见:Oracle 数据库版本升级方法详解


9. 监控

9.1 状态

crsctl stat res -t
srvctl status database -d prod
srvctl status asm

9.2 版本

crsctl query crs releaseversion
crsctl query crs softwareversion
sqlplus -version

9.3 兼容性

SELECT group_number, name, 
       compatibility, database_compatibility
FROM v$asm_diskgroup;

10. 回退

10.1 回退 Patch

opatch rollback -id 12345678

10.2 回退 GI

- 复杂
- 文档
- 测试

11. 应用场景

11.1 RU 升级

- 季度 RU
- 滚动
- 零停机

11.2 Patch

- 紧急 Patch
- 滚动
- 业务不停

11.3 版本升级

- 主版本
- 部分支持
- 检查

12. 常见问题

12.1 节点失败

- 升级中失败
- 修复
- 继续

12.2 兼容性

- 版本不兼容
- 检查

12.3 性能

- 滚动期间
- 监控

13. 最佳实践

  1. 备份:升级前
  2. 测试:演练
  3. 顺序:节点逐一
  4. 兼容性:检查
  5. 监控:状态
  6. 回退预案:准备
  7. 业务低峰:执行
  8. 文档:流程
  9. 验证:升级后
  10. 演练:定期

14. 参考资料

[1] Oracle Grid Infrastructure Installation Guide 19c, “Rolling Upgrade” https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/