Oracle Database - Enterprise Edition - 版本 12.1.0.1 和更高版本
本文档所含信息适用于所有平台
目标
在 12 C中,GI 要求 software patch level 和 active patch level 在每个节点是完全相同的。除非集群处于 rolling patch 的模式,否则一个不同 patch level 的节点,是不能被加入到集群的。
在 GI 的 patch 应用完成之后,每个节点的 software patch level 会被更新。在最后一个 patch 的节点,active patch level 会被更新到集群的 OCR 中。所以强烈建议,在应用 patch 之前和之后,手动使用命令"ocrconfig -manualbackup"备份 OCR。
OCR 会记录 patch level,所以在恢复 OCR 的时候,要特别注意补丁版本信息的一致性。
解决方案
恢复 OCR 的步骤:
注意:需要一个有相应权限的用户来执行下面步骤(如:root 用户)。
- 检查并确认 OCR 备份的 patch level 与集群 patch level 的一致性。
可以通过下面命令来查询集群的 active patch level
crsctl query crs activeversion -f
Oracle Clusterware active version on the cluster is [12.1.0.1.0]. The cluster upgrade state is [NORMAL]. The cluster active patch level is [654321].
使用下面命令查询 OCR 备份中的集群 active patch level。如果不匹配,需要找到与集群 active patch level 相匹配的 OCR 备份。
ocrdump -stdout -keyname SYSTEM.version.activeversion.patchlevel -backupfile <backup02.ocr>
[SYSTEM.version.activeversion.patchlevel]
UB4 (10) : 654321
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}
ocrdump -stdout -keyname SYSTEM.version.activeversion.patchlevel -backupfile <backup01.ocr>
[SYSTEM.version.activeversion.patchlevel]
UB4 (10) : 0
SECURITY : {USER_PERMISSION : PROCR_ALL_ACCESS, GROUP_PERMISSION : PROCR_READ, OTHER_PERMISSION : PROCR_READ, USER_NAME : root, GROUP_NAME : root}
- 如果针对当前的 patch level,没有相应的 OCR 备份,请参考下面步骤:
2a. 在关闭所有节点 GI 的情况下,恢复 OCR。
2b. 在每个节点执行下面命令:
crsctl start crs
clscfg -patch ##>> clscfg command must not be executed with any other options in any other place as the command is unsupported and undocumented
crsctl query crs softwarepatch ##>> verify the patch level on local node
2c. 在最后一个节点,执行下面命令:
crsctl stop rollingpatch ##>> this crsctl command must NOT be executed in any other place
2d. 验证集群的 active patch level 已经被更新
crsctl query crs activeversion -f
更多信息,请参考:
Oracle 12c Clusterware Administrator Guide
–> Appendix E Oracle Clusterware Control (CRSCTL) Utility Reference --> Oracle RAC Environment CRSCTL Commands
crsctl query crs softwarepatch
crsctl query crs releasepatch
crsctl query crs activeversion [-f]




