由于伺服器的硬體估計出了點問題(後來硬體服務商确認了确實有問題)
導緻資料庫從某個時刻開始,總是莫名其妙的出錯,大都是與磁盤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:歸檔真的太重要了,有錯一定要立馬解決!!!