啟動SCN不一致的資料庫
在對NOARCHIVE 的資料庫做恢復時,需要還原controlfile和datafile,如果僅僅是還原datafile,在開啟資料庫時,會提示出錯:
RMAN> alter database open;
RMAN-00571: ====================================
RMAN-00569: ======== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: =====================================================
RMAN-03002: failure of alter db command at 03/13/2008 10:40:29
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/backup1/data/test/oradata/system01.dbf'
這是因為在OPEN資料庫時,ORACLE會用controlfile的檔案頭記錄的SCN和datafile的SCN去做對比,如果發現不一致,那要用日誌來做恢復,沒有歸檔日誌,那就無從恢復可以。
如果什麼方法都嘗試過了,還是無法正常啟動ORACLE,但又想找回現在資料庫的資料,那該如何處理。
啟用隱藏引數_allow_resetlogs_corruption 來做強制啟動:
1.修改init.ora 引數檔案:
加上:
_allow_resetlogs_corruption='TURE'
2. 用pfile 來啟動oracle資料庫:
SQL> startup mount pfile=$ORACLE_HOME/dbs/inittest.ora
ORACLE instance started.
Total System Global Area 757040840 bytes
Fixed Size 730824 bytes
Variable Size 352321536 bytes
Database Buffers 402653184 bytes
Redo Buffers 1335296 bytes
Database mounted.
SQL> alter database open resetlogs;
Database altered.
至此ORACLE資料庫處於open狀態,但是該資料庫處於非常瘋狂的狀態。
Open後,系統的LOGFILE的SCN為重置為datafile的SCN號。
在做不完整恢復時的log資訊:
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------------
1 1 31 10485760 1 NO INACTIVE 70812 13-MAR-08
2 1 32 10485760 1 NO CURRENT 70814 13-MAR-08
3 1 30 10485760 1 NO INACTIVE 70809 13-MAR-08
強制啟動後的log資訊,注意當前的FIRST_CHANGE#變小了,而且非current的LOG變為0.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------------
1 1 0 10485760 1 YES UNUSED 0
2 1 1 10485760 1 NO CURRENT 70681 13-MAR-08
3 1 0 10485760 1 YES UNUSED 0
這樣一種狀態的資料庫處於瘋狂中,因為某些檔案中含有比當前SCN號還要大的資料塊,結果會導致系統報大量ORA-00600錯誤。唯一可以做的是,整個資料庫匯出,重建資料庫來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/40239/viewspace-206228/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫不一致強制啟動資料庫
- Oracle資料庫啟動過程驗證檢查點SCNOracle資料庫
- oracle資料庫SCNOracle資料庫
- oracle 學習總結篇三:SCN號與資料庫啟動的關係Oracle資料庫
- 資料庫的啟動資料庫
- oracle資料庫SCN概念Oracle資料庫
- SCN, checkpoint 及資料庫的恢復資料庫
- Oracle資料庫SCN號的應用Oracle資料庫
- 【SCN】Oracle資料庫SCN號的四種獲取途徑Oracle資料庫
- SCN與oracle啟動Oracle
- 3.1 啟動資料庫資料庫
- 啟動MySql資料庫MySql資料庫
- 啟動MongoDB資料庫MongoDB資料庫
- 基於SCN閃回資料庫資料庫
- 最接近資料庫的當前SCN號資料庫
- SCN與資料庫恢復的關係資料庫
- 透過修改控制檔案scn推進資料庫scn資料庫
- SequoiaDB資料庫之資料庫的配置與啟動資料庫
- 【案例】Oracle報錯ORA-01194 ORA-01110 由於資料庫SCN不一致導致無法啟動Oracle資料庫
- 資料庫系統檔案啟動資料庫資料庫
- 資料庫啟動的不同狀態資料庫
- 兩種啟動資料庫的方式資料庫
- Oracle資料庫中的多種SCN彙總Oracle資料庫
- 資料庫控制檔案中的SCN詳解資料庫
- 啟動資料庫監聽資料庫
- MySQL資料庫如何啟動?MySql資料庫
- 啟動和停止資料庫.資料庫
- 資料庫啟動過程資料庫
- 資料庫啟動問題資料庫
- 資料庫自動啟動關閉資料庫
- 同一資料庫資料SCN號與時間的轉化資料庫
- 3.1.5.8 隨系統啟動自動啟動資料庫資料庫
- 資料檔案的SCN和資料塊的SCN有何區別
- Oracle資料庫的SCN轉換成時間和時間轉換成SCNOracle資料庫
- SCN號與oracle資料庫恢復的關係Oracle資料庫
- ORACLE資料庫中SCN與時間的轉換Oracle資料庫
- RAC 資料庫的啟動與關閉資料庫
- 遠端啟動資料庫的條件資料庫