1. 程式人生 > >ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

對ORACLE資料庫虛擬機器進行了克隆操作,克隆是沒有關閉資料庫,克隆結束啟用資料庫時報錯無法啟動。

原因:

資料庫異常停止,停止的時候還沒有來得及將快取區中的LOG歸檔,就被強制SHUTDOWN了。 資料庫再次啟動的時候,會去檢查SCN 系統變動碼.如果發現不一致,那麼就意味著有不一致的LOG需要處理.報錯情況:

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-01589: must use RESETLOGS or NORESETLOGS option for database open( 要開啟資料庫則必須使用 RESETLOGS 或 NORESETLOGS 選項)

SQL> alter database open resetlogs; alter database open resetlogs * ERROR 位於第 1 行: ORA-01194: file 1 needs more recovery to be consistent(檔案 1 需要一致性恢復) ORA-01110: 資料檔案 1:'/home/oracle/u01/app/oradata/umsdb/system01.dbf'

SQL> recover database using backup controlfile; ORA-00279: change 886589271 generated at 09/04/2018 09:06:39 needed for thread1(更改 886589271 (在 09/04/2018 09:06:39 生成) 對於執行緒 1 是必需的)

ORA-00289:  suggestion : /home/oracle/arch/1_98395_909619752.dbf

(建議: /home/oracle/arch/1_98395_909619752.dbf) ORA-00280: change 886589271 for thread 1 is in sequence #98395(更改 886589271 對於執行緒 1 是按序列 #98395 進行的)

指定日誌: {=suggested | filename | AUTO | CANCEL} /home/oracle/u01/app/oradata/umsdb/redo01.log ORA-00310: archived log contains sequence 98986; sequence 98395 required(存檔日誌包含序列 98986;要求序列 98395)

ORA-00334: 歸檔日誌:  '/home/oracle/u01/app/oradata/umsdb/redo01.log'

SQL> recover database using backup controlfile; ORA-00279: change 886589271 generated at 09/04/2018 09:06:39 needed for thread1(更改 886589271 (在 09/04/2018 09:06:39 生成) 對於執行緒 1 是必需的) ORA-00289: suggestion : /home/oracle/arch/1_98395_909619752.dbf

(建議: /home/oracle/arch/1_98395_909619752.dbf)

ORA-00280: change 886589271 for thread 1 is in sequence #98395(更改 886589271 對於執行緒 1 是按序列 #98395 進行的)

指定日誌: {=suggested | filename | AUTO | CANCEL} /home/oracle/u01/app/oradata/umsdb/redo03.log ORA-00310: archived log contains sequence 98985; sequence 98395 required(存檔日誌包含序列 98985;要求序列 98395) ORA-00334: 歸檔日誌:  '/home/oracle/u01/app/oradata/umsdb/redo03.log'

如果存檔日誌剛好包含要求的序列號,那麼恭喜,資料庫會提示成功。

指定日誌: {=suggested | filename | AUTO | CANCEL} /home/oracle/u01/app/oradata/umsdb/redo02.log 已應用的日誌。 完成介質恢復。 SQL> alter database open resetlogs; 資料庫已更改。

如果存檔日誌不包含要求的序列號,怎麼辦呢?

RMAN備份恢復最直接,不然真的要搞很久很久。

參看文章: