DB10g 아카이브 로그 파일관리
==========================
현상> 갑자기 db가 멈추는 현상 발생 abort로 죽이고 다시 살리면 다음과 같은 에러 발생
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-16038: log 2 sequence# 618 cannot be archived
ORA-19809: limit exceeded for recovery files
ORA-00312: online log 2 thread 1:
'/home01/oracle/ocs/oradata/OCSD/onlinelog/o1_mf_2_1k7xomh4_.log'
ORA-00312: online log 2 thread 1:
'/home02/oracle/ocs/infra/flash_recovery_area/OCSD/onlinelog/o1_mf_2_1k7xormv_.log'
========================================================================
#### 조치하는 법
1) db_recovery_file_dest_size를 증가시켜 주면 된다. 바로 반영됩니다.
SQL> alter system set db_recovery_file_dest_size=xG;
2) Stop using the db_recovery_file_dest by unsetting the parameter.
( This assumes you never really wanted to use this option )
3) rman repository/Controlfile 에서 엔트리들을 삭제한다.
SQL> conn / as sysdba
SQL> SELECT * FROM V$RECOVERY_FILE_DEST;
위의 명령으로 조회해 보면 최대치 까지 로그가 쌓인것을 알 수 있음.
다음과 같이 조치한다.
RMAN 사용해서 ARCHIVE LOG 삭제
#$ORACLE_HOME/bin/rman
RMAN> connect target /
RMAN> LIST ARCHIVELOG LIKE '%.arc';
RMAN> DELETE ARCHIVELOG LIKE '%.arc';
3일치 아카이브로그 남겨두고 지우기
RMAN> delete archivelog all completed before 'sysdate -3';
하나씩 지우는게 번거러울 경우 아래와 같이 한번에 지우는 방법도 있음.
1. os 상에서 우선 파일을 삭제한다.
# cd $ORACLE_BASE/flash_recovery_area/$ORACLE_SID/archivelog/yyyy_mm_dd
# rm -r $ORACLE_BASE/flash_recovery_area/$ORACLE_SID/archivelog/'삭제할 디렉토리명'
2. RMAN을 실행한다.
# $ORACLE_HOME/bin/rman
RMAN>connect target /
RMAN>crosscheck archivelog all; -> marks the controlfile that the archives have been deleted
RMAN>delete expired archivelog all; -> deletes the log entries identified above
'ORACLE > ADMIN' 카테고리의 다른 글
오라클 윈도우에서 삭제하기 (0) | 2007.03.15 |
---|---|
오라클 사용자 관리 (0) | 2007.03.10 |
오라클 캐릭터셋 변경 (0) | 2007.02.13 |
오라클과 NLS의 찰떡궁합 들여다보기 (0) | 2007.02.10 |
Redhat Enterprise 4(RHEL4)에 occi환경 만들기 (Oracl.. (0) | 2006.11.25 |