OS환경 : Oracle Linux 5.8 (64bit)
DB 환경 : Oracle Database 9.2.0.4
에러 : ORA-00350: log 2 of thread 1 needs to be archived
로그 스위치가 안되는 장애 발생중에
리두로그 그룹 삭제시 발생하는 메세지
1
2
3
4
5
6
|
SQL> alter database drop logfile group 2;
alter database drop logfile group 2
*
ERROR at line 1:
ORA-00350: log 2 of thread 1 needs to be archived
ORA-00312: online log 2 thread 1: '/oracle/app/oracle/oradata/KSGDBP/redo02.log'
|
해결 방법 : clear unarchived 명령 사용
clear unarchived 명령 사용
1
2
3
|
SQL> alter database clear unarchived logfile group 2;
Database altered.
|
리두 상태 확인
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
SQL>
set lines 200
set pages 1000
col member for a60
select l.group#, member, archived, l.status, (bytes/1024/1024) MB
from v$log l, v$logfile f
where f.group# = l.group#
order by 1
/
GROUP# MEMBER ARC STATUS MB
---------- ------------------------------------------------------------ --- ---------------- ----------
1 /oracle/app/oracle/oradata/KSGDBP/redo01.log YES UNUSED 100
2 /oracle/app/oracle/oradata/KSGDBP/redo02.log YES UNUSED 100
3 /oracle/app/oracle/oradata/KSGDBP/redo03.log NO CURRENT 100
3 rows selected.
|
INACTIVE 상태가 아닌 UNUSED 상태로 변함
리두로그 그룹 삭제
1
2
3
|
SQL> alter database drop logfile group 2;
Database altered.
|
정상적으로 삭제됨
OS 상의 리두 로그 파일으로 삭제
1
2
3
4
|
SQL> !rm /oracle/app/oracle/oradata/KSGDBP/redo02.log
SQL> !ls -al /oracle/app/oracle/oradata/KSGDBP/redo02.log
ls: /oracle/app/oracle/oradata/KSGDBP/redo02.log: No such file or directory
|
*clear unarchived 명령을 사용한 경우 작업 이후 db full 백업을 필수로 해야함
원인 : 리두로그 손상 문제
리두로그 손상 문제