記一次簡單的資料庫恢復,控制檔案不一致導致的啟動失敗。

wei-xh發表於2010-07-07
很可惜,我沒能儲存一開始的報錯資訊(alert檔案竟然沒記錄)。報錯在mount階段,報錯的意思是控制檔案2與控制檔案1不一致,2比1版本更高。資料庫的損壞是由於非法斷電導致的。
修改引數檔案pfile,只保留控制檔案2,啟動資料庫。
SQL> conn / as sysdba
已連線。
SQL> create pfile from spfile;

檔案已建立。

SQL> create spfile from pfile;
create spfile from pfile
*
ERROR 位於第 1 行:
ORA-32002: ??????????? SPFILE
可以猜到報錯為不能建立正在使用的SPFILE。當然可也修改nls_language設定語言。

SQL> shutdown immediate
ORA-01507: ??????


ORACLE 例程已經關閉。
SQL> create spfile from pfile;

檔案已建立。

SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
ORA-01113: 檔案 1 需要介質恢復
ORA-01110: 資料檔案 1: 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF'


SQL> select status from v$datafile;

STATUS
-------
SYSTEM
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE
ONLINE

已選擇10行。

SQL> recover datafile 1;
完成介質恢復。
SQL> alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-01113: 檔案 2 需要介質恢復
ORA-01110: 資料檔案 2: 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF'


SQL> recover database;
完成介質恢復。


注意這裡是完全恢復,恢復成功了,說明應用日誌完全了,不存在丟失。

SQL> alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-00314: 日誌 2 (執行緒 1),預計序號  與  不匹配
ORA-00312: 聯機日誌 2 執行緒 1: 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG'

ORA-00314說明Cause: The online log is corrupted or is an old version.既然是完全恢復的,我們可以resetlogs,不會造成丟失。

SQL> select * from v$Log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIME
------------- ----------
         1          1        320  104857600          1 NO  INVALIDATED
     47548236 06-7月 -10

         2          1        318  104857600          1 NO  INACTIVE
     47366790 05-7月 -10

         3          1        319  104857600          1 NO  INACTIVE
     47386928 05-7月 -10


SQL> recover database until cancel;
完成介質恢復。
SQL> alter database open resetlogs;

資料庫已更改。

SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL>

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

相關文章