記錄一次停電導致的資料庫不完全恢復

studywell發表於2017-09-01


記錄一次停電導致的資料庫不完全恢復


接到朋友電話,一臺windows+ora11g 資料庫由於停電導致資料庫啟動失敗;
記錄修復和走過的彎路;
遺憾:該資料庫未開歸檔,沒有備份,最後資料庫開啟可能有資料丟失;




1、停電重啟系統後,冷備資料庫檔案;
2、嘗試啟動資料庫,提示:
ORA-01079 Oracle database was not properly created, operation aborted


3、重建控制檔案;
啟動資料庫到mount下;


第一次執行語句:
CREATE CONTROLFILE REUSE DATABASE "ora11g" RESETLOGS  NOARCHIVELOG
………………


提示:
ORA-01192: must have at least one enabled thread




第二次建立控制檔案,執行語句成功;
CREATE CONTROLFILE REUSE DATABASE "ora11g" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 ('E:\app\Administrator\oradata\ora11g\REDO01.log') SIZE 51200K,
GROUP 2 ('E:\app\Administrator\oradata\ora11g\REDO02.log') SIZE 51200K,
GROUP 3 ('E:\app\Administrator\oradata\ora11g\REDO03.log') SIZE 51200K
-- STANDBY LOGFILE
DATAFILE
'E:\app\Administrator\oradata\ora11g\SYSTEM01.DBF',
'E:\app\Administrator\oradata\ora11g\UNDOTBS01.DBF'
CHARACTER SET US7ASCII;






4、嘗試修復資料庫:
recover database using backup controlfile;
將redo檔案路徑放到提示命令列下,提示恢復失敗;


嘗試:alter database open resetlogs;
提示:system檔案需要恢復,recover datafile system檔案失敗;
嘗試多種方法,在system需要恢復的情況下開啟資料庫,均失敗;


5、重新啟動資料庫到mount狀態,重新建立控制檔案;
   不recover database;直接alter database open resetlogs;


6、新增臨時檔案;
alter TABLESPACE "CCEN_TMP" add TEMPFILE 'E:\app\Administrator\oradata\ora11g\CCEN_TMP.ora' SIZE 2g reuse AUTOEXTEND ON NEXT 1g maxsize 30g;
   
7、執行全庫備份;




有時間的琢磨的問題:
1、如何在system需要恢復的情況開啟資料庫?
2、如何從資料檔案直接獲取資料?




附錄:關於檢查點資訊的;
ORA-01113問題的簡單分析   
http://blog.itpub.net/23718752/viewspace-1742631/
http://blog.csdn.net/xingzhemoluo/article/details/39430487

http://blog.csdn.net/msdnchina/article/details/38169095

http://blog.csdn.net/msdnchina/article/details/38010025

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

相關文章