1. 程式人生 > >關於系統崩潰後的Oracle恢復

關於系統崩潰後的Oracle恢復

昨天客戶叫我過去幫個忙,說是資料庫壞掉了,看能不能幫助恢復,看他一臉期盼的樣子我給他過去看了一下(客戶以為我是高手,其實我很菜的啦),後來聽說,由於他偷懶,兩個月以來都沒有備份資料(我暈,這傢伙難道不怕下崗?)。

上去看了一下情況,發現情況還是比較好的,由於客戶的Rad5壞了一塊,客戶在build的過程中又壞了一塊,最後沒有辦法只好找資料恢復的公司來進行資料恢復,恢復過來後發現作業系統不能用了,但是資料庫檔案還存在。

我用了以下辦法恢復資料:

1、找一臺沒有裝過Oracle的機器,按照客戶原有的安裝配置安裝Oracle。(包括表空間建立和使用者建立)

2、停止所有Oracle服務(2000/xp),改自動為手動(這個可作可不做,只要服務停了就行)。

3、用恢復過來的資料庫檔案覆蓋剛剛安裝的資料庫檔案。

4、用恢復過來的admin目錄下的檔案覆蓋剛剛安裝好的admin目錄下檔案。

重新啟動資料庫,發現服務可以起來,但是資料庫沒有起來,用企業管理器察看,說是資料庫沒有起來。

5、接下來進入命令列 輸入命令 sqlplus "/nolog as sysdba"

6、輸入命令 shutdown immediate;

解除安裝資料庫成功

7、輸入命令 startup mount

最後命令列介面提示了一些問號,另外帶了一個檔名稱,看樣子是這個檔案沒有覆蓋造成的,一看我就暈了,這好像是pwd檔案嘛!!!

8、停止服務

用恢復的pwd和init檔案覆蓋新裝的檔案pwd和init檔案(oracle安裝目錄/ora90/database)

9、重新啟動服務,發現問題解決了

結論:在弄得過程中走了很多彎路,最後才弄成,分析原因是對Oracle的檔案結構不夠熟悉造成的,這個東西看來還是要多操作多練習,熟能生巧嘛,另外,理論學習還是必不可少的。

另外:如果磁碟壞掉的時機正好是Oracle在進行資料寫入的情況的話,在這種情況下可能會造成資料檔案的物理損壞,這種損壞好像是無法恢復的,只能通過重做日誌來恢復。