본문 바로가기

IT관련

오라클 db_recovery_file_dest_size 와 여유공간(free) 체크

Oracle 10g DB부터 db_recovery_file_dest, db_recovery_file_dest_size 라는 파라메타가 나와서 많이 당황스러운 경우가 있습니다.

기존에는 archive log 파일이 log_archive_dest 또는 log_archive_dest_1 위치에 생겼고, 이 디렉토리가 위치하고 있는 파일 시스템 전체가 Full 나지 않는 이상은 문제가 없었습니다.

하지만, db_recovery_file_dest_size 라는 값이 생겨서 이 지정된 size 만큼 차버리면 해당 파일시스템이 여유공간이 있던 말던 에러가 나버립니다.

 

따라서, db_recovery_file_dest 공간을 얼마나 쓰고 있는지 모니터링을 해줄 필요가 있습니다.

이 공간을 모니터링 하는 방법은 v$recovery_file_dest 딕셔너리를 조회하면 됩니다.

 


SQL>

set linesize 200
col name for a40
col space_limit_MB for 999,999,999
col space_used_MB for 999,999,999
col space_reclaimable_MB for 999,999,999
col number_of_files for 999,999,999


select name,
       round(space_limit/1024/1024) as space_limit_MB,
       round(space_used/1024/1024) as space_used_MB,
       round(space_reclaimable/1024/1024) as space_reclaimable_MB,
       number_of_files,
       con_id
from v$recovery_file_dest;


 

실행결과는 아래와 같습니다.

 

 

저는 db_recovery_file_dest_size 가 4,660 MB 이고, 이중에서 1,761 MB 를 사용하고 있네요.

 

이 스크립트를 이용해서 여유공간을 잘 체크해야 합니다.

이 공간이 Full 나면 DB에서 Archive 에러가 발생합니다.

 

에러가 안나는 아슬아슬한 상황에서 DB를 내렸다가 DB를 재기동하는 찰나에 에러를 만나는 경우도 있습니다.

이 경우에는 DB가 안올라옵니다. ORA-03113 에러를 만나게 됩니다.

 

이런 상황이면 여기를 참조 하세요 ==> 오라클 DB Startup 에러 ORA-03113