在歸檔模式下設定_disable_logging=true導致redo corrupt的解決辦法

viadeazhu發表於2009-10-08

_disable_logging=true可以幫助非歸檔模式的Oracle在benchmark測試期間提高效率。

但是如果不小心在歸檔模式下把他設為true,會導致redo log corrupt的問題:

即使將這個引數重新設為false,但如果繼續switch logfile到current log,那麼switch log會hung住。

並且alert.log會報:

Thu Oct  8 03:42:09 2009
ARC1: Log corruption near block 2 change 215140805 time ?
Thu Oct  8 03:42:09 2009
Errors in file /oracle/xxx/data01/haozhu/bdump/haozhu_arc1_9082.trc:
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 2 change 215140805 time 10/08/2009 03:28:49
ORA-00312: online log 2 thread 1: '/oracle/xxx/data01/haozhu/redo/haozhu_redo2.log'
ARC1: All Archive destinations made inactive due to error 354
Thu Oct  8 03:42:09 2009
ARC1: Closing local archive destination LOG_ARCHIVE_DEST_1: '/oracle/xxx/data01/haozhu/archive/haozhu_42.1_698645072_arc' (error 354)

 

這時候解決的辦法也非常簡單,

對於非current的log file:

SQL>  select group#,status from v$Log;

    GROUP# STATUS
---------- ------------------------------------------------
         2 CURRENT
         1 ACTIVE


SQL> alter database clear unarchived logfile '/oracle/xxx/data01/haozhu/redo/haozhu_redo1.log';

Database altered.

但是對於current logfile,必須設定unrecoverable datafile選項。

SQL> alter database clear unarchived logfile '/oracle/xxx/data01/haozhu/redo/haozhu_redo2.log';
alter database clear unarchived logfile '/oracle/xxx/data01/haozhu/redo/haozhu_redo2.log'
*
ERROR at line 1:
ORA-01624: log 2 needed for crash recovery of instance haozhu (thread 1)
ORA-00312: online log 2 thread 1: '/oracle/xxx/data01/haozhu/redo/haozhu_redo2.log'

SQL> alter database clear unarchived logfile group 2 unrecoverable datafile;

Database altered.

經過對所有redo log進行clear後,一切恢復正常。

但是,在這期間生成的archive log,卻是corrupt的。

dbv file=haozhu_41.1_698645072_arc blocksize=512

Total Pages Examined         : 308
Total Pages Processed (Data) : 0
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 0
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 0
Total Pages Marked Corrupt   : 308
Total Pages Influx           : 0
Highest block SCN            : 0 (0.0)

相信這些corrupt的archive log,能夠作為曾經在archivedlog模式下設立過_disable_logging=true的一點證據。

(因為alert log很有可能沒有儲存那麼久遠。)

希望能回答:http://www.itpub.net/thread-1222074-1-1.html 這個帖子。

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

相關文章