Oracle RAC啟動失敗-軟連結惹的禍

chenoracle發表於2022-11-05

問題現象:

Oracle RAC 節點1重啟作業系統後,CRS無法啟動。

報錯如下:

2022-06-15 19:41:22.077:
[cssd(29365)]CRS-1714:Unable to discover any voting files, retrying discovery in 15 seconds; Details at (:CSSNM00070:) in /oracle/grid/product/11.0/log/cjc-db-01/cssd/ocssd.log

檢查日誌

檢查/oracle/grid/product/11.0/log/cjc-db-01/cssd/ocssd.log沒有找到詳細資訊。

找不多voting files,難道共享儲存有問題?

問題分析:

1.對比兩節點磁碟掛載掛載許可權,完全一致。

檢視節點2共享儲存許可權

root@cjc-db-01:/oradata#ll -rth
total 159G
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:23 cjcdata5
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:24 cjcdata3
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:25 cjcdata7
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:25 cjcdata4
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:25 cjcdata6
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:25 cjcdata1
-rw-rw---- 1 grid asmadmin 6.0G Jun 16 09:25 ocr2
-rw-rw---- 1 grid asmadmin 6.0G Jun 16 09:25 ocr3
-rw-rw---- 1 grid asmadmin 6.0G Jun 16 09:25 ocr1
-rw-rw---- 1 grid asmadmin 20G Jun 16 09:25 cjcdata2

對比兩個節點檢查NAS掛載引數,完全一致

root@cjc-db-01:/oradata#mount|grep oradata
192.168.0.10:/cjc_db_oradata_01_nfs on /oradata type nfs (rw,relatime,sync,vers=3,rsize=32768,wsize=32768,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,noac,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.10,mountvers=3,mountport=2050,mountproto=tcp,local_lock=none,addr=192.168.0.10)
root@cjc-db-02:/root#mount|grep oradata
192.168.0.10:/cjc_db_oradata_01_nfs on /oradata type nfs (rw,relatime,sync,vers=3,rsize=32768,wsize=32768,namlen=255,acregmin=0,acregmax=0,acdirmin=0,acdirmax=0,hard,noac,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.0.10,mountvers=3,mountport=2050,mountproto=tcp,local_lock=none,addr=192.168.0.10)

2.檢查voting files、OCR是否正常?

登入節點2,檢查叢集 voting files、OCR正常,無問題。

檢查ocr

grid@cjc-db-02:/home/grid$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2920
Available space (kbytes) : 259200
ID : 550682119
Device/File Name : +SYS
Device/File integrity check succeeded
Device/File Name : +DATA
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user

檢查ocrdisk

grid@cjc-db-02:/home/grid$ crsctl query css ocrdisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 64c8b1ebd5fd4f19bfa1c7ef88397359 (/dev/rac/ocr1) [SYS]
2. ONLINE 1953c55c29bd4fa9bf3d04d7fe001112 (/dev/rac/ocr2) [SYS]
3. ONLINE 7d719d3170a34ff7bfff5cc5abae15cb (/dev/rac/ocr3) [SYS]
Located 3 voting disk(s).

嗯,不對,共享磁碟為什麼顯示在/dev/rac目錄下,不是在/oradata下嗎?


登入節點2,檢查磁碟路徑,顯示共享磁碟均在/dev/rac目錄下 

select path from v$asm_disk;

難道是有軟連結?

檢查節點2軟連結:

root@cjc-db-02:/root#ll -rth /dev/rac/
total 0
lrwxrwxrwx 1 root root 14 Dec 12 2019 ocr1 -> /oradata/ocr1
lrwxrwxrwx 1 root root 14 Dec 12 2019 ocr2 -> /oradata/ocr2
lrwxrwxrwx 1 root root 14 Dec 12 2019 ocr3 -> /oradata/ocr3
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata1 -> /oradata/cjcdata1
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata2 -> /oradata/cjcdata2
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata3 -> /oradata/cjcdata3
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata4 -> /oradata/cjcdata4
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata5 -> /oradata/cjcdata5
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata6 -> /oradata/cjcdata6
lrwxrwxrwx 1 root root 15 Dec 13 2019 cjcdata7 -> /oradata/cjcdata7

檢查節點1軟連結,沒有?

root@cjc-db-01:/root#ll -rth /dev/rac*
ls: cannot access /dev/rac*: No such file or directory

檢查歷史命令,沒有刪除軟連結的操作。

解決方案:

先新建軟連結

新建/dev/rac目錄,授權,建立軟連線。

注意軟連線路徑要和另一個節點完全一致。

ln -s /oradata/cjcdata1 /dev/rac/cjcdata1
ln -s /oradata/cjcdata2 /dev/rac/cjcdata2
ln -s /oradata/cjcdata3 /dev/rac/cjcdata3
ln -s /oradata/cjcdata4 /dev/rac/cjcdata4
ln -s /oradata/cjcdata5 /dev/rac/cjcdata5
ln -s /oradata/cjcdata6 /dev/rac/cjcdata6
ln -s /oradata/cjcdata7 /dev/rac/cjcdata7
ln -s /oradata/ocr1 /dev/rac/ocr1
ln -s /oradata/ocr2 /dev/rac/ocr2
ln -s /oradata/ocr3 /dev/rac/ocr3

檢視許可權和名稱

root@cjc-db-01:/dev#ll -rht rac/*
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata1 -> /oradata/cjcdata1
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata2 -> /oradata/cjcdata2
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata3 -> /oradata/cjcdata3
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata4 -> /oradata/cjcdata4
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata5 -> /oradata/cjcdata5
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata6 -> /oradata/cjcdata6
lrwxrwxrwx 1 root root 15 Jun 15 19:49 rac/cjcdata7 -> /oradata/cjcdata7
lrwxrwxrwx 1 root root 14 Jun 15 19:51 rac/ocr1 -> /oradata/ocr1
lrwxrwxrwx 1 root root 14 Jun 15 19:51 rac/ocr2 -> /oradata/ocr2
lrwxrwxrwx 1 root root 14 Jun 15 19:51 rac/ocr3 -> /oradata/ocr3

再次啟動CRS,叢集恢復正常。

再回到最開始的問題,為什麼重啟伺服器後共享儲存的軟連結會丟失?

是軟連結位置的原因,不能放在/dev下,實際上也沒必要使用軟連結。

經驗證,手動在/dev目錄下建立任何檔案,包括軟連結,重啟作業系統後檔案都會丟失。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2922025/,如需轉載,請註明出處,否則將追究法律責任。

相關文章