2014. 11. 6. 14:21

Current 아닌 그룹 중 archive 안 된 그룹이 삭제되고 DB open 상태일 경우


삭제된 그룹이 archive되지 않은 경우

서버 운영중에 특정 그룹이 지워진 후 계속 log switch가 발생하면 이와 같은 상황이 됨

DB에 archive hang 현상이 발생하여 중단 후 강제 비정상 종료됨

- 평소에 꾸준히 alert log 모니터링을 잘 해서 이런 상황을 막아야 함


현재상태 확인

SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

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

     1 /data/temp7/redo01_a.log                         5   63 INACTIVE YES

     1 /data/temp7/redo01_b.log                         5   63 INACTIVE YES

     2 /data/temp7/redo02_a.log                        50   64 CURRENT  NO

     2 /data/temp7/redo02_b.log                        50   64 CURRENT  NO

     3 /data/temp7/redo03_a.log                        50    0 UNUSED   YES

     3 /data/temp7/redo03_b.log                        50    0 UNUSED   YES


6 rows selected.


SYS>alter system switch logfile;


System altered.


SYS>alter system switch logfile;


System altered.


SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

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

     1 /data/temp7/redo01_a.log                         5   66 CURRENT  NO

     1 /data/temp7/redo01_b.log                         5   66 CURRENT  NO

     2 /data/temp7/redo02_a.log                        50   64 ACTIVE   YES

     2 /data/temp7/redo02_b.log                        50   64 ACTIVE   YES

     3 /data/temp7/redo03_a.log                        50   65 ACTIVE   YES

     3 /data/temp7/redo03_b.log                        50   65 ACTIVE   YES


6 rows selected.

 

SYS>alter system switch logfile;


System altered.


SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

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

     1 /data/temp7/redo01_a.log                         5   66 INACTIVE YES

     1 /data/temp7/redo01_b.log                         5   66 INACTIVE YES

     2 /data/temp7/redo02_a.log                        50   67 CURRENT  NO

     2 /data/temp7/redo02_b.log                        50   67 CURRENT  NO

     3 /data/temp7/redo03_a.log                        50   65 INACTIVE YES

     3 /data/temp7/redo03_b.log                        50   65 INACTIVE YES


6 rows selected.


그룹삭제 (현재 archive 완료된 3번 그룹 삭제)

SYS>!rm -rf /data/temp7/redo03*


SYS>!ls /data/temp7/redo03*

ls: /data/temp7/redo03*: #׷# #####̳# ###丮## ###


SYS>!ls /data/temp7

control01.ctl  example01.dbf  redo02_a.log  system01.dbf  undotbs01.dbf

control02.ctl  redo01_a.log   redo02_b.log  temp01.dbf    users01.dbf

control03.ctl  redo01_b.log   sysaux01.dbf  temp02.dbf


log switch를 수차례 발생시켜 hang 상태 유발
hang이 되면 ctrl + c로 취소함

SYS>alter system switch logfile;

System altered.

SYS>alter system switch logfile;

System altered.

SYS>alter system switch logfile;

System altered.

SYS>/

alter system switch logfile

*

ERROR at line 1:

ORA-01013: user requested cancel of current operation


SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

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

     1 /data/temp7/redo01_a.log                         5   69 INACTIVE  NO

     1 /data/temp7/redo01_b.log                         5   69 INACTIVE  NO

     2 /data/temp7/redo02_a.log                        50   70 CURRENT NO

     2 /data/temp7/redo02_b.log                        50   70 CURRENT NO

     3 /data/temp7/redo03_a.log                        50   68 INACTIVE  NO

     3 /data/temp7/redo03_b.log                        50   68 INACTIVE  NO


6 rows selected.


archive 부분은 전부 no
오라클은 archiving를 순서대로 하기 때문에 3번 다음에 1번 그룹으로 넘어가야 하는데
3번 파일이 없으므로 아카이빙이 안되고 그 뒤에 나머지도 아카이브가 되지 않음을 볼 수 있음
가장 작은 시퀀스에서부터 멈춘 것을 알 수 있음

alert log확인 후 원인 파악하기

[oracle@localhost ~]$ vi $ORACLE_BASE/diag/rdbms/testdb/testdb/trace/alert_testdb.log

Errors in file /app/oracle/diag/rdbms/testdb/testdb/trace/testdb_arc0_5152.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/data/temp7/redo03_b.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 3 thread 1: '/data/temp7/redo03_a.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Thu Nov 06 23:07:40 2014
Errors in file /app/oracle/diag/rdbms/testdb/testdb/trace/testdb_m000_5939.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/data/temp7/redo03_b.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00312: online log 3 thread 1: '/data/temp7/redo03_a.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

장애해결

[oracle@localhost ~]$ exit

exit


SYS>alter database clear unarchived logfile group 3;


Database altered.


SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

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

     1 /data/temp7/redo01_a.log                         5   69 INACTIVE YES

     1 /data/temp7/redo01_b.log                         5   69 INACTIVE YES

     2 /data/temp7/redo02_a.log                        50   70 CURRENT  NO

     2 /data/temp7/redo02_b.log                        50   70 CURRENT  NO

     3 /data/temp7/redo03_a.log                        50    0 UNUSED   YES

     3 /data/temp7/redo03_b.log                        50    0 UNUSED   YES


6 rows selected.


복구 끝!

SYS>alter system switch logfile;

System altered.

SYS>alter system switch logfile;

System altered.

SYS>/

System altered.

SYS>@log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp7/redo01_a.log                         5   72 INACTIVE YES
     1 /data/temp7/redo01_b.log                         5   72 INACTIVE YES
     2 /data/temp7/redo02_a.log                        50   73 CURRENT  NO
     2 /data/temp7/redo02_b.log                        50   73 CURRENT  NO
     3 /data/temp7/redo03_a.log                        50   71 INACTIVE YES
     3 /data/temp7/redo03_b.log                        50   71 INACTIVE YES

6 rows selected.

위 상황은 

11g 이상 해결법


아래 상황은

10g 이하 해결법 (추가 할 것)

'DB > oralce' 카테고리의 다른 글

temporary tablespace  (0) 2014.11.07
export/import 1 미완  (0) 2014.11.06
리두로그 장애2  (0) 2014.11.06
리두로그 장애1  (0) 2014.11.05
리두로그마이너 - 정리 덜됨...엉망임;;  (0) 2014.11.05
Posted by 성장하는yw