shutdown abort模式丟失redo,使用隱含參數啟庫,abortredo
shutdown abort模式
丟失redo log
無法open資料庫
通過警示報錯ORA-00354: corrupt redo log block header 從該錯誤可以看出當前日誌的redo block的header出現問題,導致oracle無法讀取redo進行恢複。通過以下檢查探索資料庫檔案頭都一致,沒有需要恢複的檔案,但是由於資料庫是非正常關閉,last_change scn沒有被寫入,資料庫判斷需要恢複,則讀取相應的redo log group 3,但是此時該檔案已經損壞。
SYS@orcl11g>alter database open resetlogs;alter database open resetlogs*ERROR at line 1:ORA-01139: RESETLOGS option only valid after an incomplete database recoverySYS@orcl11g>recover database;ORA-00283: recovery session canceled due to errorsORA-00313: open failed for members of log group 3 of thread 1ORA-00312: online log 3 thread 1: '/opt/oracle/oradata/orcl11g/redo03.log'ORA-27046: file size is not a multiple of logical block sizeAdditional information: 1SYS@orcl11g>recover database until cancel;ORA-00279: change 5168496 generated at 10/29/2014 23:48:23 needed for thread 1ORA-00289: suggestion : /opt/oracle/flash_recovery_area/ORCL11G/archivelog/2014_10_29/o1_mf_1_159_%u_.arcORA-00280: change 5168496 for thread 1 is in sequence #159Specify log: {<RET>=suggested | filename | AUTO | CANCEL}ORA-00308: cannot open archived log '/opt/oracle/flash_recovery_area/ORCL11G/archivelog/2014_10_29/o1_mf_1_159_%u_.arc'ORA-27037: unable to obtain file statusLinux-x86_64 Error: 2: No such file or directoryAdditional information: 3ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error belowORA-01194: file 1 needs more recovery to be consistentORA-01110: data file 1: '/opt/oracle/oradata/orcl11g/system01.dbf'
加入以下隱含參數:SYS@orcl11g>show parameter _allowNAME TYPE VALUE------------------------------------ ---------------------- ------------------------------_allow_error_simulation boolean TRUE_allow_resetlogs_corruption boolean TRUE
這時候探索資料庫時可以開啟的
SYS@orcl11g>SYS@orcl11g>SYS@orcl11g>alter database open resetlogs;Database altered.SYS@orcl11g>發現記錄檔已經被重建:SYS@orcl11g>select group#,status from v$log; GROUP# STATUS---------- ------------------------------------------------------------ 1 CURRENT 2 UNUSED 3 UNUSEDSYS@orcl11g>alter system switch logfile;System altered.SYS@orcl11g>/System altered.SYS@orcl11g>/System altered.SYS@orcl11g>select group#,status from v$log; GROUP# STATUS---------- ------------------------------------------------------------ 1 CURRENT 2 INACTIVE 3 ACTIVE