首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle RAC 11g 無備份情況下重建 OCR 與 OLR 完整實戰紀錄

     編輯:Oracle 資料庫相關知識

面對 OCR(Oracle Cluster Registry)與 OLR(Oracle Local Registry)損毀且無任何備份的極端災難場景,本文記錄雙節點 RAC 11gR2 環境下,透過 rootcrs.pl 清除叢集配置、root.sh 重建 OCR/OLR、再註冊資源的完整復原流程,供同仁參考。

一、災難場景描述

  • OCR 所在 ASM 磁碟組被誤刪,且所有自動備份同步遺失。
  • OLR 同步損壞,叢集無法啟動。
  • 環境:雙節點(rac-one、rac-two),Grid Home:/u01/app/11.2.0/grid。

二、階段 1:清除所有節點叢集配置

使用 $GRID_HOME/crs/install/rootcrs.pl 腳本(需 root 權限)。

節點 2 (rac-one) 執行去配置

[root@rac-one install]# ./rootcrs.pl -deconfig -force

輸出關鍵訊息:Successfully deconfigured Oracle clusterware stack on this node

節點 1 (rac-two) 執行去配置(最後一個節點加 -lastnode)

[root@rac-two install]# ./rootcrs.pl -deconfig -force -lastnode

此步驟會清除 ASM、OCR、Voting Disk 等所有叢集資源配置。

三、階段 2:重建 OCR 與 OLR(執行 root.sh)

此步驟等同於重新安裝 Grid Infrastructure 的配置階段。

節點 1 (rac-two) 首先執行

[root@rac-two grid]# ./root.sh

關鍵輸出確認點:

  • ASM created and started successfully.
  • Disk Group GIDG created successfully.
  • Successfully accumulated necessary OCR keys.
  • Successfully replaced voting disk group with +GIDG.
  • OLR initialization - successful(節點 2 執行時顯示)

節點 2 (rac-one) 稍後執行

[root@rac-one grid]# ./root.sh

節點 2 會偵測到節點 1 已建立叢集,自動加入現有叢集。

四、階段 3:掛載資料磁碟組並驗證叢集狀態

SQL> ALTER DISKGROUP DATADG MOUNT;
[root@rac-one bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

五、階段 4:重新註冊 Listener 與 Database 資源

1. 註冊 Local Listener(Grid 使用者)

srvctl add listener -l LISTENER
# 若 1521 埠被 VIP 佔用,暫停 VIP 再操作
crsctl stop resource ora.rac-two.vip
srvctl add listener -l LISTENER
crsctl start resource ora.rac-two.vip

2. 註冊 Database 與 Instance(Oracle 使用者)

srvctl add database -d Rac -o /u01/app/oracle/product/11.2.0/db_1 -c RAC
srvctl add instance -d Rac -i Rac1 -n rac-two
srvctl add instance -d Rac -i Rac2 -n rac-one

3. 重啟叢集驗證

crsctl start cluster -all

等待 2 分鐘後檢查 crsctl stat res -t,確認所有資源 ONLINE。

六、階段 5:解決 Listener 重複啟動問題

發現 rac-two 上有兩個 LISTENER 進程,導致資源狀態 INTERMEDIATE。

# 停止所有 listener 進程
lsnrctl stop
kill -9 <殘留 PID>
crsctl start resource ora.LISTENER.lsnr

七、關鍵經驗總結

  1. 無備份重建 OCR/OLR 的核心是 root.sh,它會重新建立 OCR Keys、Voting Disk、OLR、ASM Diskgroup。
  2. 節點去配置順序:非最後節點先執行 -deconfig -force,最後節點加 -lastnode。
  3. 資源註冊用戶區分:Listener 用 Grid,Database 用 Oracle。
  4. ASM 磁碟損壞需先修復,root.sh 會嘗試重建 Diskgroup。
  5. 災後必做:檢查 crsctl stat res -t 所有資源狀態,驗證應用連線正常。

八、參考指令速查

操作指令
去配置節點(非最後)rootcrs.pl -deconfig -force
去配置最後節點rootcrs.pl -deconfig -force -lastnode
重建叢集配置root.sh
掛載 DiskgroupALTER DISKGROUP <name> MOUNT;
註冊 Listenersrvctl add listener -l LISTENER
註冊 Databasesrvctl add database -d <db_name> -o <oracle_home> -c RAC
註冊 Instancesrvctl add instance -d <db_name> -i <inst_name> -n <node_name>
啟動叢集crsctl start cluster -all
檢查資源狀態crsctl stat res -t
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved