반응형

Oracle 로고

멀쩡히 운영하고 있던 DB에서 갑자기 ora-00257 archiver error. connect as sysdba only until resolved 이 에러를 뱉었다. 이 에러의 해결 방법은 아카이브 로그 파일을 삭제하거나 공간을 늘려주면 된다.


목차

1. 문제 상황
2. 문제 원인
3. 해결 방법 및 예방 방안

1. 문제 상황

아침에 출근해서 작업을 하려고 보니, 갑자기 "ora-00257 archiver error. connect as sysdba only until resolved" 이 에러가 발생했다. 그러다 보니 데이터 조회는 물론, 로그인도 되질 않았다.

 

에러 내용 : ORA-00257 : archiver error. connect as sysdba only until resolved.

 

2. 문제 원인

이 문제를 찾아 보니, 오라클 DB 서버에 archive log를 쌓고 있는데, 이 로그를 쌓을 수 있는 공간이 FULL이 되어 발생했던 에러다. 이 문제를 해결하기 위해서는 아카이브 공간에 있는 arc 파일을 삭제하거나 DB_RECOVERY_FILE_DEST_SIZE 파라미터 값을 늘리면 된다.

3. 해결 방법 및 예방 방안

이 문제가 다시 발생하면 운영을 하는데 있어 정말 크리티컬한 이슈가 된다. 운영 서버가 아예 멈춰버리니까 말이다. 이 문제를 예방할 수 있는 방안을 정리한다.

 

1) archive log mode / no archive log mode

oracle DB를 운영하는데 있어서 archive log 모드를 선택할 수 있는 것은 2개가 있다. 운영에 no archive log mode를 적용하면 이 문제가 일어나지 않으나, 복구를 위해 archive log mode를 적용하는 것을 추천한다.

archive log mode : archive log를 저장하는 모드. 대체적으로, 중요한 운영 또는 QA 환경에 적용
no archive log mode : archive log를 저장하지 않는 모드. 대체적으로, 개발 서버에 적용

 

2) FRA

FRA를 사용할 경우에는 FRA에 할당된 공간이 꽉 찼는지 확인을 한 후에 변수( DB_RECOVERY_FILE_DEST_SIZE)를 바꿔줘야 한다.

 

3) archive log 파일 이동 또는 삭제

archive log는 백업이나 복구를 할 때 필요하다. 그렇기 때문에, 운영 DB에서는 archive log mode를 선택하여 archive log를 저장한다. 그렇기 때문에 아카이브 저장 공간이 부족하여 에러가 발생한다.

 

su -oracle
sqlplus / as sysdba
rman target /
delete archivelog all completed before 'sysdate-30';

참고할만한 URL

http://dbcafe.co.kr/wiki/index.php/%EC%98%A4%EB%9D%BC%ED%81%B4_rman_%EC%95%84%EC%B9%B4%EC%9D%B4%EB%B8%8C%EB%A1%9C%EA%B7%B8_%EC%82%AD%EC%A0%9C

 

오라클 rman 아카이브로그 삭제 - DB CAFE

1 아카이브 로그 사이즈 조회[편집] 최대 MAX 및 현재 아카이브로그 사이즈 조회 SELECT NAME , ROUND(SPACE_LIMIT/1024/1024/1024,2) SPACE_LIMIT_GB , ROUND(SPACE_USED/1024/1024/1024,2) SPACE_USED_GB , SPACE_RECLAIMABLE , NUMBER_OF_FIL

dbcafe.co.kr

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기