Oracle Logfile的常见不同状态
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:
正在被clear的group(Log
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:
一个正在被clear的CURRENT group(Current
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 member的member
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中有两个file为stale状态,当发生日志切换时,group1变成current状态,从而,group1下的logfile变成
blank(正常状态)
另外,这个例子也展示了logfile group从active到inactive的变化。
当发生switch logfile前,group5为current状态,switch logfile后,group5变为active状态,这说明recovery时
group5是有用的,同时也说明logfile时发生的不是完全检查点。
当手工发生检查点后,group5从active变为了inactive状态,此时,group5对recovery不再有用。这说明:
alter system checkpoint发生的是完全检查点。
SQL> l
1* select * from v$logfile
SQL> /
GROUP# STATUSTYPEMEMBER
---------- ------- ------- ----------------------------------------
1 STALEONLINE/opt/oracle/oradata/userlog2/redo01.log
2 STALEONLINE/opt/oracle/oradata/userlog2/redo02.log
3ONLINE/opt/oracle/oradata/userlog2/redo03.log
4ONLINE/opt/oracle/oradata/userlog2/redo04.log
5ONLINE/opt/oracle/oradata/userlog2/redo05.log
SQL> select * from v$log;
GROUP#THREAD#SEQUENCE#BYTESMEMBERS ARC STATUSFIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1121209715201 NOINACTIVE704228 07-AUG-06
2122209715201 NOINACTIVE753376 07-AUG-06
3123209715201 NOINACTIVE785843 07-AUG-06
4124209715201 NOINACTIVE868923 08-AUG-06
5125209715201 NOCURRENT951980 10-AUG-06
SQL> alter system switch logfile;
System altered.
SQL> select * from v$logfile;
GROUP# STATUSTYPEMEMBER
---------- ------- ------- ----------------------------------------
1ONLINE/opt/oracle/oradata/userlog2/redo01.log
2 STALEONLINE/opt/oracle/oradata/userlog2/redo02.log
3ONLINE/opt/oracle/oradata/userlog2/redo03.log
4ONLINE/opt/oracle/oradata/userlog2/redo04.log
5ONLINE/opt/oracle/oradata/userlog2/redo05.log
SQL> select * from v$log;
GROUP#THREAD#SEQUENCE#BYTESMEMBERS ARC STATUSFIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1126209715201 NOCURRENT994126 10-AUG-06
2122209715201 NOINACTIVE753376 07-AUG-06
312320971520 1 NOINACTIVE785843 07-AUG-06
4124209715201 NOINACTIVE868923 08-AUG-06
5125209715201 NOACTIVE951980 10-AUG-06
SQL>
SQL> alter system checkpoint;
System altered.
SQL> select * from v$log;
GROUP#THREAD#SEQUENCE#BYTESMEMBERS ARC STATUSFIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
1126209715201 NOCURRENT994126 10-AUG-06
2122209715201 NOINACTIVE753376 07-AUG-06
3123209715201 NOINACTIVE785843 07-AUG-06
4124209715201 NOINACTIVE868923 08-AUG-06
5125209715201 NOINACTIVE951980 10-AUG-06
- The End-
By eygle on 2008-05-07 22:59 |
Comments (0) |
FAQ | 2705 |