在12c中的RAC中,由于是flex cluster,常常会出现实例乱跑的现象,如实例3跑到了节点2上,实例2跑到节点3上。而且重启之后也还是如此。
我们可以这样处理,让原来乱跑的实例改回去:
1.检查crs中记录的实例和节点对应关系的信息:
[oracle@12102-rac2 ~]$ crsctl stat res ora.cdbrac.db -p |grep SERVERNAME
GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac1)=cdbrac_1
GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac2)=cdbrac_3
GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac3)=cdbrac_2
[oracle@12102-rac2 ~]$
2. 修改,需要使用unsupported参数。需要加unsupported参数的原因,参考这里。
crsctl modify res ora.cdbrac.db -attr "GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac2)=cdbrac_2" -unsupported
crsctl modify res ora.cdbrac.db -attr "GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac3)=cdbrac_3" -unsupported
3. 到每个节点检查,是否都已经改好:
[oracle@12102-rac2 ~]$ crsctl stat res ora.cdbrac.db -p |grep SERVERNAME
GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac1)=cdbrac_1
GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac2)=cdbrac_2
GEN_USR_ORA_INST_NAME@SERVERNAME(12102-rac3)=cdbrac_3
[oracle@12102-rac2 ~]$
4. 重启crs(含DB)