1. 程式人生 > >一次RAC環境下伺服器故障重啟後ORACLE啟動過程

一次RAC環境下伺服器故障重啟後ORACLE啟動過程

由於伺服器的硬體估計出了點問題(後來硬體服務商確認了確實有問題)

導致資料庫從某個時刻開始,總是莫名其妙的出錯,大都是與磁碟I/O錯誤之類相關的問題;

比如歸檔日誌出錯,解決問題後仍然莫名其妙的無法寫入歸檔,導致資料庫時好時壞;

在某個深夜,伺服器終於宕掉了,半夜2趕過去開搞.

重啟伺服器時發現P550的IBM機子怎麼都沒法啟動,reset的小孔插了半天也沒反應,機器啟動就報C100209的錯誤,網上查說是主機板故障,嚇死人了;

最後折騰了近一個小時,插拔電源讓伺服器掉電一會終於啟動成功了.

系統:AIX 

資料庫:oracle10R2 RAC

1.開機後首先啟動rac的叢集服務掛載磁碟

   在兩個節點執行命令 : smit clstart  然後選擇第一項,啟動;  --- 此處需要root使用者執行;

    檢視磁碟掛載情況:lspv

2.啟動crs伺服器

   crs_start -all     剛開機的時候一直啟動失敗,可是折騰了資料庫一會後,再來啟動就成功了,估計是剛開機很多磁碟還未掛載完成吧;

   crs_stat -t        啟動成功後來檢視,發現都online了,心裡的大石頭終於放下了,因為在伺服器宕機之前,有個節點監聽總是自己掉,而且歸檔還總報錯;

3.啟動資料庫

   starup -- 直接報錯,資料檔案錯誤,仔細看最後還有一行系統錯誤提示 AIX IBM 6000 error錯誤:許可權不足.....

   然後查看了報錯的資料檔案所在目錄,我是存在/dev/下的,一查嚇一跳,許可權都沒有了.不知道怎麼搞的.

   chown -R oracle:oinstall /dev/r*      賦許可權給oracle;

   再次starup 提示有一個172號資料檔案錯誤.

   然後去檢視該資料檔案,發現目錄下根本沒有這個資料檔案了.....真是太奇怪了,居然多出了一個和報錯的資料檔名字差不多但是多了一個下劃線的檔案

   但是直接改名後恢復也恢復不了;

4.離線資料檔案,先啟動資料庫

   startup mount

   alter database datafile 172 offline;

   alter database open;      終於啟動成功;

5.用rman恢復(理論上應該這樣,但是我這裡失敗了)

   rman target /

   list backup;      檢視備份的檔案

   restore datafile 172; 

   recover datafile 172;       會要求找歸檔日誌,直接輸入auto;

   正常情況下這裡應該就OK的,可是在伺服器宕機之前,歸檔日誌就總有問題,導致最終這裡恢復失敗;

   如果恢復成功      alter database datafile 172 online;

6.對於172號錯誤資料檔案自己的解決方案

   還好我的172號檔案對應的表空間下只有兩張表,但是資料量都是億級的,通過檢查發現壞掉的資料檔案是歷史資料,可以不要了,還好還好.

   expdp 匯出表的資料,都是分割槽表,導的時候就能看到哪個分割槽的資料是有問題的,還好都是歷史資料.

   最後將查詢的時候會報資料檔案錯誤的表drop了,直接查詢看不出來,用max直接報172號檔案錯誤;

   重建分割槽表,impdp資料.

  大功告成,雖然不算一次成功的恢復,但是還好硬體故障也保住了資料庫,萬幸!!!

  PS:歸檔真的太重要了,有錯一定要立馬解決!!!