适用于:
Oracle Database - Enterprise Edition - Version11.2.0.3 to 12.1.0.2 [Release 11.2 to 12.1]
Information in this document applies to anyplatform.
症状:
在GI从11.2.0.4升级到12.1.0.2后,使用srvctl管理或启动/停止数据库失败,并显示以下错误:
PRCD-1027 : Failed to retrieve database <dbname>
PRCD-1027 : Failed to retrieve database <dbname>
PRCD-1035 : Database <dbname> is not a clusterdatabase
使用sqlplus启动数据库工作正常。
原因:
在升级期间,只有在所有其他节点上的升级完成后,rootupgrade.sh才必须在最后一个节点上运行。然而,当其他节点上的rootupgrade.sh未完成时,rootupgrade.sh在最后一个节点上运行。这样做阻止了OCR和activeversion的完全升级。
activeversion仍然显示11.2.0.4,而软件版本显示为12.1.0.2。
-> crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.4.0]
-> crsctl query crs softwareversion
Oracle Clusterware version on node [wdc1finrdb02] is [12.1.0.2.0]
检查rootcrs跟踪文件以查看已启动和已完成的时间,显示在所有其他节点上的rootupgrade.sh之前启动了最后一个节点上的rootupgrade.sh。因此,srvctl命令失败。
升级必须按照以下顺序运行:
1)在第一个节点上,在启动rootupgrade.sh任何其他节点之前,必须运行rootupgrade.sh以在第一个节点上成功完成。
2)在中间节点上,可以在除最后一个节点之外的所有剩余节点上并行运行rootupgrade.sh。如果需要,它也可以顺序运行。
3)在最后一个节点上,所有其他节点上的rootupgrade.sh必须成功完成,然后在最后一个节点上运行rootupgrade.sh。
解决方案:
虽然最后一个节点上的rootupgrade.sh在所有其他节点上的rootupgrade.sh已成功运行完成之前运行,但rootupgrade.sh已成功在所有节点上完成。
在最后一个节点上运行“rootupgrade.sh -force”,以执行OCR中资源的升级并更改激活版本。请注意,一旦运行“rooutupgrade.sh -force”,rootupgrade.sh无法在任何其他节点中再次运行。