一次Oracle資料庫恢復過程

lilong發表於2005-02-24
單位的Oracle資料庫又出問題了,經過努力終於恢復..... [@more@]

2月24日下午3點,一個同事一不小心誤刪除了一個重要的業務資料表。該表大概有140萬記錄,儲存著近三年的銷售資料。幸好有前一天的備份,而且當天沒有業務發生,也就是說恢復前一天的資料就可以了。不過平時的備份是透過冷備份,copy所有的資料檔案、控制檔案和重做日誌檔案,這樣就決定了無法單獨恢復一個表,只能全資料庫的恢復。無奈,為了不影響業務系統的執行,只好在另外一臺PC機上安裝了一個與伺服器完全相同的環境,Win2000+Oracle8.1.7。然後copy所有的備份檔案,按道理這樣就可以在PC機上恢復出前一天的資料了。可是無法開啟資料庫,提示ora-01991錯誤,幸好以前遇到過這個現象,這是密碼檔案的問題。先把位於d:/oracle/ora81/database/PWDora8.ORA的檔案刪除,然後在命令列模式中輸入
ORAPWD FILE=d:/oracle/ora81/DATABASE/PWDora8.ORA PASSWORD=ORACLE ENTRIES=10,重新建立密碼檔案。以前出現這種問題,作以上處理後再recover就好了,可這次不行了,recover後提示:
ora-00283: recovery session canceled due to errors
ora-01190: controlfile or data file 1 is from before the last RESETLOGS
ora-01110: data file 1: 'd:/oracle/oradata/ora8/users01.dbf'
第一感覺是users01.dbf出問題了,試著將它offline了,又提示其他的檔案,一個一個都offline了,再試著alter database open成功了。這下我感覺有戲了,說明資料庫的系統檔案沒壞,但這樣的資料庫還是不行操作呀!怎麼辦呢?難道備份真的檔案有問題?思考了一會,眼前一亮,我發覺可能是控制檔案的問題。馬上重建控制檔案,alter database backup controlfile to trace備份當前控制檔案到資料庫跟蹤檔案中到d:/oracle/admin/ora8/udump中。把檔案中的內容
CREATE CONTROLFILE REUSE DATABASE "ORA8" NORESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 254
MAXINSTANCES 1
MAXLOGHISTORY 27372
LOGFILE
GROUP 1 'D:/ORACLE/ORADATA/ORA8/REDO01.LOG' SIZE 1M,
GROUP 2 'D:/ORACLE/ORADATA/ORA8/REDO02.LOG' SIZE 1M,
GROUP 3 'D:/ORACLE/ORADATA/ORA8/REDO03.LOG' SIZE 1M
DATAFILE
'D:/ORACLE/ORADATA/ORA8/SYSTEM01.DBF',
'D:/ORACLE/ORADATA/ORA8/RBS01.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS01.DBF',
'D:/ORACLE/ORADATA/ORA8/TEMP01.DBF',
'D:/ORACLE/ORADATA/ORA8/TOOLS01.DBF',
'D:/ORACLE/ORADATA/ORA8/INDX01.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS02.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS03.ORA',
'D:/ORACLE/ORADATA/ORA8/USERS04.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS05.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS06.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS07.DBF',
'D:/ORACLE/ORADATA/ORA8/USERS08.ORA',
'D:/ORACLE/ORADATA/ORA8/USERS09.ORA',
'D:/ORACLE/ORADATA/ORA8/USERS10.ORA'
CHARACTER SET ZHS16GBK
copy出來,存為c.sql,執行svrmgrl,
>connect internal
>shutdown
>startup mount
>@c.sql
顯示成功,recover,提示需要歸檔日誌檔案,幸好資料庫執行在歸檔模式下,按照提示提供相應的歸檔日誌,經過7、8次的提示,終於顯示恢復成功。Alter database open成功!屋子裡一片歡呼,經過近兩個小時,資料庫終於恢復了。

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

相關文章