_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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15415488/viewspace-616115/