1. 程式人生 > >richard的專欄([email protecte

richard的專欄([email protecte

1報錯如下

ORA-00354: corrupt redolog block header

ORA-00353: log corruptionnear block 162280 change 465824441547 time 08/28/2015 10:44:22

ORA-00312: online log 5 thread 1:'/u01/oradata/dpweb/redo05.log

2

select * from v$log;

   GROUP#    THREAD#  SEQUENCE#     BYTES    MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM

---------- -------------------- ---------- ---------- -------------------                         ------------- ---------

4           1           20331 524288000            1 NO  CURRENT   4.6586E+11 28-AUG-15

5           1           20329 524288000            1 NO  INACTIVE   4.6582E+11 28-AUG-15

6           1           20330 524288000            1 NO  INACTIVE   4.6584E+11 28-AUG-15

發現每個組只有1個,沒有冗餘,如果有冗餘的話,這裡就好辦了,直接把損壞的檔案從日誌組裡面踢出,重新建一個就OK了。(可見redo log做冗餘的重要性)

3加日誌檔案

SQL>alter database addlogfile group 1 '/u01/oradata/dpweb/redo01.log' size 500M reuse;

SQL> alter databaseadd logfile group 2 '/u01/oradata/dpweb/redo02.log' size 500M reuse;

SQL> alter databaseadd logfile group 3 '/u01/oradata/dpweb/redo03.log' size 500M reuse;

4

此時,日誌組已經切換到了新新增的redo01上。

select * from v$log;

   GROUP#    THREAD#  SEQUENCE#     BYTES    MEMBERS ARCSTATUS           FIRST_CHANGE# FIRST_TIM

---------- -------------------- ---------- ---------- --- ---------------- ------------- ---------

1           1           20332  524288000            1 NO  CURRENT              4.6589E+11 28-AUG-15

2           1              0 524288000            1 YES UNUSED                        0

3           1              0 524288000            1 YES UNUSED                        0

4           1           20331 524288000            1 NO  INACTIVE              4.6586E+11 28-AUG-15

5           1           20329 524288000            1 NO  INACTIVE              4.6582E+11 28-AUG-15

6           1           20330 524288000            1 NO INACTIVE              4.6584E+11 28-AUG-15

5

終極解決方案:強制清理未歸檔的日誌組

SQL> alter databaseclear unarchived logfile group 5;

Database altered.

總結:redo冗餘的方法alter database add logfile member '/u01/app/oracle/data/db01/redo03.log' to group 3;