資料庫恢復後開啟時遇到 ORA-01152

姚遠ACE發表於2022-06-13


資料庫恢復後開啟時遇到 ORA-01152

資料庫恢復後開啟時遇到:

RMAN> alter database open resetlogs;
......
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/oracle/u01/app/oracle/oradata/orcl/system01.dbf'

分析原因

oracle對於這個錯誤的解釋是:

ORA-01152: file 1 was not restored from a sufficiently old backup  
Cause: An incomplete recovery session was started, but an insufficient number of logs were applied to make the database consistent. This file is still in the future of the last log applied. The most likely cause of this error is forgetting to restore the file from a backup before doing incomplete recovery.
Action: Either apply more logs until the database is consistent or restore the database file from an older backup and repeat recovery.

其實說得很清楚,就是說使用了一箇舊的控制檔案。備份裡restore出的controlfile上的scn 小於 datafile上所記錄的scn,連解決方法也說清楚了。一是以old controlfile的SCN為準,將datafile恢復到與其一致,這樣就會導致資料的不一致。二是以datafile的SCN為準,將controlfile恢復到與其一致,此時就會報ORA-01152的錯誤,然後我們通過recover database,進而利用歸檔日誌來完成controlfile和datafile的SCN一致,歸檔找不到再利用redolog來恢復。

# 恢復到超過controlfile的SCN狀態

SQL> recover database using backup controlfile;
......
Specify log: {=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/orcl/redo01.log
Log applied.
Media recovery complete.

注意:/u01/app/oracle/oradata/orcl/redo01.log是手工輸入的。

此時恢復完成,應用完所有歸檔,並重新應用了redolog,啟動資料庫到open狀態

SQL>alter database open resetlogs;
Database altered.


也可以進行時間點的資料恢復(大於之前所需archivelog中的最後一個archivelog即可),例如: set until sequence 15 thread 1; 這個sequence 15 裡面的scn是大於資料庫裡面的SCN的。這樣就恢復出一致性的資料,然後用open resetlogs開啟資料即可。

利用隱含引數"_allow_resetlogs_corruption"=true開啟資料庫

更改引數


SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
System altered.


恢復資料庫


SQL> recover database using backup controlfile until cancel;
SQL> alter database open resetlogs;
SQL> startup force;

將內建引數改回來


SQL> alter system set "_allow_resetlogs_corruption"=false scope=spfile;
System altered.

 資料庫啟動到open狀態後查詢資料



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

相關文章