1、檢查日誌組情況
SQL> select GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS from v$log;
GROUP#THREAD#SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------------
1171 YES INACTIVE
2172 YES INACTIVE
3173 NOCURRENT
從以上即可看出當前日誌組爲GROUP# 3,SEQUENCE# 73
2、刪除group1 即71
[oracle@db02 orcl]$ mv redo01.log redo01.log.bak
3、開始寫入數據
寫入數據:
SQL>begin
2for a in 1..1000000 loop
3insert into t values (a);
4commit;
5end loop;
6end;
7/
4、再次檢查
SQL> select GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS from v$log;
GROUP#THREAD#SEQUENCE# ARC STATUS
---------- ---------- ---------- --- ----------------
1174 NOINACTIVE
2175 NOACTIVE
3176 NOCURRENT
可以發現,日誌發生了三次切換,最新日誌序列爲 76;
5、分析一下alert日誌
...skipping one line
Current log# 3 seq# 70 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log
Fri Mar 14 17:28:13 2014
Thread 1 advanced to log sequence 71
...skipping one line
Sat Mar 15 06:00:59 2014
Thread 1 advanced to log sequence 72
Current log# 2 seq# 72 mem# 0: /u01/app/oracle/oradata/orcl/redo02.log
...skipping one line
Thread 1 advanced to log sequence 73
Current log# 3 seq# 73 mem# 0: /u01/app/oracle/oradata/orcl/redo03.log
Sun Mar 16 22:01:03 2014
...skipping one line--這裏可以看出,根本沒有將redo寫入到74這一個組
Current log# 1 seq# 74 mem# 0: /u01/app/oracle/oradata/orcl/redo01.log
Sun Mar 16 22:01:16 2014
Thread 1 advanced to log sequence 75
Current log# 2 seq# 75 mem# 0: /u01/app/oracle/oradata/orcl/redo02.log
Sun Mar 16 22:01:16 2014
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_arc1_6461.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Sun Mar 16 22:01:16 2014
Errors in file /u01/app/oracle/admin/orcl/bdump/orcl_arc1_6461.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'
Linux Error: 2: No such file or directory
Additional information: 3
Sun Mar 16 22:01:16 2014
ARCH: Archival stopped, error occurred. Will continue retrying
Sun Mar 16 22:01:16 2014
ORACLE Instance orcl - Archival Error
Sun Mar 16 22:01:16 2014
ORA-16038: log 1 sequence# 74 cannot be archived
總結:結合日誌可以分析出,當group 1 、71(已經歸檔)日誌組被刪除以後,日誌組還是可以切換到group 1 ,不過因爲redo01已經不存在,直接跳過不寫入redo。不過對其歸檔就會報錯。
當其他的幾個日誌組都寫滿的時候,再次切換到redo01的時候,因爲redo01無法歸檔,這個時候就會hang住。