記錄一則因主機名訛誤致使的RAC啓動異常

環境:RHEL 7 + Oracle 19.5 RACshell

1.故障現象

最近遇到客戶的一套19c測試環境,在一次主機重啓後發現集羣沒法啓動,使用crsctl stat res -t -init查看集羣啓動階段時發現直接報錯以下信息:oracle

[grid@xxdb01-vip ~]$ crsctl stat res -t -init
Oracle Clusterware infrastructure error in CRSCTL (OS PID 29739): CLSD/ADR initialization failed with return value -1
1: clskec:has:CLSU:910 4 args[clsdAdr_CLSK_err][mod=clsdadr.c][loc=(:CLSD00050:)][msg=2020-07-03 16:33:42.032 (:CLSD00050:) dbgc_init_all failed with return code 49802.     Detected in function clsdAdrInit at line number 1828. ]
2: clskec:has:CLSU:910 4 args[clsdAdrInit_CLSK_err][mod=clsdadr.c][loc=(:CLSD00281:)][msg=clsdAdrInit: Additional diagnostic data returned by the ADR component for dbgc_init_all failure: 
 DIA-49802: missing read, write, or execute permission on specified ADR home directory [/oracle/app/grid/diag/crs/xxdb01-vip]
DIA-49801: actual permissions [rwxr-xr-x], expected minimum permissions [rwxrwxrwx] for effective user [grid]
DIA-48188: user missing read, write, or exec permission on specified directory
Linux-x86_64 Error: 13: Permission denied
Additional information: 2
Additional information: 511
Additional information: 16877
([all diagnostic data retrieved from ADR])]

CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Status failed, or completed with errors.

起初看到這個報錯內容顯示較多且從未見過,還有些波瀾,但立刻靜心去細看報錯信息發現提示很是明顯,都是權限相關,而進一步看權限不足的那個目錄/oracle/app/grid/diag/crs/xxdb01-vip,這裏爲什麼是vip的主機名呢?去到上層/oracle/app/grid/diag/crs目錄下去查看發現有兩個目錄xxdb01xxdb01-vip,而正常應該是xxdb01,直到此時才注意到機器的主機名有問題:本來應該是xxdb01,而如今重啓主機後卻變成了xxdb01-vip,進而致使集羣異常。app

2.解決方案

從故障現象來看,說明以前的主機名配置極可能存在問題,致使在重啓主機後主機名發生變化。
查了下主機名相關的配置文件,發現/etc/hosts/etc/sysconfig/network內容都匹配,但/etc/hostname不匹配。
在RHEL6中並無/etc/hostname這個配置文件,所以懷疑極可能是當時實施安裝的工程師是按照RHEL6的方法修改了主機名,可是因爲/etc/hostname沒有配置因此重啓出現問題。
那如今如何處理呢?改這個文件嗎?該文件應該也可,但其實RHEL7可使用以下命令來修改主機名,徹底省去了擔憂配錯文件的煩惱:測試

hostnamectl set-hostname xxdb01

當再次重啓主機後,RAC啓動恢復正常。code

相關文章
相關標籤/搜索