Logfile的不同狀態

轉載:http://www.eygle.com/archives/2008/05/oracle_logfile.html

Logfile的不同狀態

 

一、  V$LOG:STATUS 指的是GROUP的狀態

 

UNUSED

尚未記錄change的空白group(一般會出現在,loggroup剛剛被添加,或者剛剛使用了resetlogs打開數據庫,或者使用clear logfile後)

 

CURRENT:

當前正在被LGWR使用的group(同時是ACTIVE狀態)

 

ACTIVE

未被LGWR寫,instance recovery需要的。還沒有完成checkpoint

 

INACTIVE

online,未被LGWR寫,對instance recovery不再有用了。

 

CLEARING

正在被cleargroupLog is being re-created as an empty log after an ALTER DATABASE CLEAR LOGFILE statement. After the log is cleared, the status changes to UNUSED.

 

CLEARING_CURRENT:

一個正在被clearCURRENT groupCurrent log is being cleared of a closed thread. The log can stay in this status if there is some failure in the switch such as an I/O error writing the new log header.)出現在中狀態一般是有錯誤的。

 

二、V$LOGFILE:STATUS指的是member的狀態

 

INVALID:

             不能使用的member,可能損壞了(另外,剛加入到redolog group的日誌文件在被使用之前也是這個狀態)

STALE

            見下面解釋

DELETED

      被alter database drop logfile membermember

BLANK:

            正常的都是blank,不管是否被寫。

 

下面是對metalink上對stale的解釋:

 

Log files may have a status of stale regardless of redo log mirroring or

archival mode.

 

 

Solution Description:

=====================

 

In general, the stale status of a redo log member should not be a cause for

great concern, unless you observe that this happens frequently or

systematically.  Keep in mind that a stale log is not necessarily an invalid

log, but more of an "in-doubt" one. Once the corresponding redo group becomes

the current one again, the stale status will go away by itself.

 

 

下面是一個例子:

 

logfile中有兩個filestale狀態,當發生日誌切換時,group1變成current狀態,從而,group1下的logfile變成

blank(正常狀態)

另外,這個例子也展示了logfile groupactiveinactive的變化。

當發生switch logfile前,group5current狀態,switch logfile後,group5變爲active狀態,這說明recovery

group5是有用的,同時也說明logfile時發生的不是完全檢查點。

當手工發生檢查點後,group5active變爲了inactive狀態,此時,group5recovery不再有用。這說明:

 

alter system checkpoint發生的是完全檢查點。

 

SQL> l  

  1* select * from v$logfile

SQL> /

 

    GROUP# STATUS  TYPE    MEMBER

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

         1 STALE   ONLINE  /opt/oracle/oradata/userlog2/redo01.log

         2 STALE   ONLINE  /opt/oracle/oradata/userlog2/redo02.log

         3         ONLINE  /opt/oracle/oradata/userlog2/redo03.log

         4         ONLINE  /opt/oracle/oradata/userlog2/redo04.log

         5         ONLINE  /opt/oracle/oradata/userlog2/redo05.log

 

SQL> select * from v$log;

 

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

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

         1          1         21   20971520          1 NO  INACTIVE                704228 07-AUG-06

         2          1         22   20971520          1 NO  INACTIVE                753376 07-AUG-06

         3          1         23   20971520          1 NO  INACTIVE                785843 07-AUG-06

         4          1         24   20971520          1 NO  INACTIVE                868923 08-AUG-06

         5          1         25   20971520          1 NO  CURRENT                 951980 10-AUG-06

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER

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

         1         ONLINE  /opt/oracle/oradata/userlog2/redo01.log

         2 STALE   ONLINE  /opt/oracle/oradata/userlog2/redo02.log

         3         ONLINE  /opt/oracle/oradata/userlog2/redo03.log

         4         ONLINE  /opt/oracle/oradata/userlog2/redo04.log

         5         ONLINE  /opt/oracle/oradata/userlog2/redo05.log

 

SQL> select * from v$log;

 

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

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

         1          1         26   20971520          1 NO  CURRENT                 994126 10-AUG-06

         2          1         22   20971520          1 NO  INACTIVE                753376 07-AUG-06

         3          1         23   20971520          1 NO  INACTIVE                785843 07-AUG-06

         4          1         24   20971520          1 NO  INACTIVE                868923 08-AUG-06

         5          1         25   20971520          1 NO  ACTIVE                  951980 10-AUG-06

 

SQL>

SQL> alter system checkpoint;

 

System altered.

 

SQL> select * from v$log;

 

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

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

         1          1         26   20971520          1 NO  CURRENT                 994126 10-AUG-06

         2          1         22   20971520          1 NO  INACTIVE                753376 07-AUG-06

         3          1         23   20971520          1 NO  INACTIVE                785843 07-AUG-06

         4          1         24   20971520          1 NO  INACTIVE                868923 08-AUG-06

         5          1         25   20971520          1 NO  INACTIVE                951980 10-AUG-06


發佈了3 篇原創文章 · 獲贊 6 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章