Oracle-OCR掉盘无法启动集群问题

发布于:2024-04-30 ⋅ 阅读:(31) ⋅ 点赞:(0)

问题背景:

        用户在对一套Oracle11.2.0.4的RAC集群进行OCR掉盘测试,验证NORMAL冗余的OCR磁盘组的可用性。测试通过将udev配置里面的一块OCR盘注释,然后重启服务器集群模拟OCR磁盘组出现掉盘的情况。用户在测试中,注释掉udev配置里面的一块OCR磁盘asm-ocr02之后,重启集群没有按照预想依靠剩余两块OCR磁盘asm-ocr01/asm-ocr03正常启动,因此,想分析集群在丢掉一块OCR盘之后为什么无法正常启动以及NORMAL冗余的OCR磁盘组,磁盘组是否具备冗余作用。

问题分析:

        检查集群的进程状态和启动alert日志,可以看到集群只有OHASD服务进程启动,在启动OCSSD进程时失败停止。

936aa1c0f29a5e53b7882e2b09dd8bfc.png

        检查OCSSD进程的trc日志,可以看到OCSSD进程只成功确认了asm-ocr03磁盘的状态,asm-ocr01磁盘也被OCSSD进程发现,但由于从asm-ocr01磁盘发现的cluster guid与gpnp profile里面的guid不匹配,导致该磁盘不能被OCSSD进程所使用,因此,当前OCSSD进程只发现了一块OCR盘,不满足至少两块OCR磁盘的要求,所以集群无法正常启动。

 

969f373fb800917e70f1b221c16770c6.png

        检查节点本地的gpnp profile里面的cluster guid信息,跟OCSSD进程日志日志里面显示的一致,都为29ef4e111ef36f9bbf235c90fbfe2bbb,进一步排查cluster guid不一致的原因。

 

8a976a8fa76b608a39854fcfcccaed80.png

        cluster guid不一致,除了OCR磁盘属于其他集群和集群安装问题导致之外,还有可能是磁盘之前已经被从OCR磁盘组剔除导致,检查asm的alert日志,可以看到OCRDG之前已经drop过disk ocrdg_0000,从磁盘号来看这个磁盘应该就是asm-ocr01。

bde27d4db53c807dc5b9530b3fe9d8b7.png

        为了验证以上分析,我们先将udev配置里面注释的asm-ocr02磁盘恢复正常,让集群可以正常的启动,然后再次查看OCR磁盘组使用情况,可以看到磁盘asm-ocr01的确已经被剔除OCR磁盘组,所以检查asm-ocr01会发现cluster guid不一致的情况

 

8e9604206a3d5bb699273511d9a86310.png

问题修复:

        需要先将asm-ocr01通过force add disk或是dd磁盘头再add disk的方式重新加回OCR磁盘组,再重新进行掉盘测试。

        在进行掉盘测试时,集群OHASD,OCSSD进程可以正常启动,但CRSD服务进程会无法正常启动,这是由于OCR磁盘组无法自动正常挂载导致,因为掉的OCR磁盘还没正式从OCR磁盘组里面删除,所以自动mount的时候会发现磁盘找不到的问题,出现以下ORA-15032/15040/15042错误:

        ORA-15032: not all alterations performed

        ORA-15040: diskgroup is incomplete

        ORA-15042: ASM disk "0" is missing from group number "2"

        在这种情况下可以通过手动强制alter diskgroup OCRDG mount force的方式,将OCR磁盘组强制拉起,然后再恢复集群的CRSD服务以及数据库。

 

Tip:欢迎关注公众号:勇敢牛牛的笔记,超100+的原创内容,每周不定期更新数据库技术文章

 


网站公告

今日签到

点亮在社区的每一天
去签到