티스토리 뷰

컴퓨터활용/오라클

ORA-00257: archiver is stuck 오류

호주 멜번초이 2012.04.08 22:10


오라클 db 에 이미지 파일을 왕창 올리고 났더니 갑자기

sqlplus 로 login할때   ORA-00257: archiver is stuck. CONNECT INTERNAL only, until freed

에러를 만났다.  PC에서나 UNIX 서버에서나 어떻게든 sqlplus 접속이 원천 차단되었기에 별도리가 없었다.  물론 JEUS DB 접속도 안 되고 있다.  인터넷을 찾아보니

대부분의 원인은 redo log file을 적재하는 장치의 용량 부족으로 발생하며, 이런 경우 connect internal만 가능하다고 나와 있다.

그래서 df -k 명령으로 디스크별 사용량을 보았더니 아래와 같이 /arch 디스크가 100% 차 있는 것이 보인다.   이 에러는 archive 디렉토리가 디스크가 full 나서 그렇다는 것을 알게 되었다. DBA 에게 물어보니 arch 디렉토리내의 log 파일을 최근 일주일 정도만 남기고 지우면 해결된다고 하였다.

[oracle@db:/arch/HERA] df -k
Filesystem    1024-blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          2097152   1799616   15%    11281     3% /
/dev/hd2          5242880   1482796   72%    73686    18% /usr
/dev/hd9var       2097152   1642844   22%     8472     3% /var
/dev/hd3          5242880   4518172   14%     1451     1% /tmp
/dev/hd1          5242880   4546588   14%     8448     1% /home
/dev/hd11admin     2097152   2096488    1%        5     1% /admin
/proc                   -         -    -         -     -  /proc
/dev/hd10opt      2097152   1419440   33%    15283     5% /opt
/dev/livedump     2097152   2096504    1%        4     1% /var/adm/ras/livedump
/dev/oraclelv    30408704   4891752   84%    64073     6% /oracle
/dev/userlv02   121634816 102684076   16%     7173     1% /user01
/dev/netbackuplv    20971520  16116300   24%     8607     1% /netbackup
/dev/arch       122880000  35440640   100%     6434     3% /arch
/dev/user03     522240000  22035456   96%     4105     2% /user03

 따라서 아래 명령으로 30일 이전 파일을 모두 찾아서 지웠다.

[oracle@ihrdb01:/arch/ORCL] find . -ctime +30 -name "*.log"  | xargs rm -rf


이렇게 했더니 해당 disk 가 72% 까지 떨어졌다.   10초 정도 지나니 다시 로그인이 되었다.



댓글
  • 프로필사진 Jason 위와 같이 대용량으로 Insert/update를 할경우는 Nologging로 하는것이 좋습니다. 오라클은 트랜잭션에 따른 로그스위치가 발생하면 대용량 Data업로드의 경우에도 쓸데없이 redo 및 아카이빙을 합니다. 이경우는 SQL에서 hint로 redo로그를 bypass하던가 파라미터 또는 Table딴에서 Nologgning을 하면 훨씬 유리합니다. 2012.07.01 17:57 신고
댓글쓰기 폼