728x90

오라클의 adump, bdump, udump, 리스너 로그, 아카이브 로그 등을 백업할 수 있으면 백업하는 것을 권장한다. 하지만 대부분의 경우 백업의 필요성이 절실하지 않기 때문에 삭제한다.

 

각종 로그의 자동관리를 위하여 첨부한 파일과 같이 CRONTAB에 등록하여 관리하면 편리하다.
각각의 로그관리에 대한 정책이 필요하다.

정책 예시)
1. alert 로그       : 월별로 로그를 관리. 영구 보관하는 것이 좋다.
                      compress 명령으로 압축하여 보관.
2. adump audit 파일 : 180일 정도 유지, 매일 180일이 지난 trc파일을 삭제
3. bdump trace 파일 : 90일 정도 유지, 매일 90일이 지난 trc파일을 삭제
4. udump trace 파일 : 90일 정도 유지, 매일 90일이 지난 trc파일을 삭제
5. 리스너 로그      : 리스너를 로깅하도록 설정했을 경우 월별로 로그를 관리.

                      180일이 지난 파일은 삭제.
                      compress 명령으로 압축하여 보관.
6. 아카이브로그 파일 : 기본적으로 1주일에 1번 이상 FULL BACKUP을 받을 경우
   백업 툴에서 아카이브로그를 관리해 주지 않을 경우 등록하여 사용
   7일전 아카이브로그 파일 삭제.

쉘 예시) 쉘 스크립트 작성 시 오타에 주의할 것
#######################################################
#### alert.log                                     ####
#######################################################
nDate=`date +%Y%m%d`
cp $ORACLE_BASE/admin/TESTDB/bdump/alert_TESTDB.log $ORACLE_BASE/TESTDB/bdump/alert_TESTDB.log.$nDate
cat /dev/null > $ORACLE_BASE/admin/TESTDB/bdump/alert_TESTDB.log
compress -vf $ORACLE_BASE/TESTDB/bdump/alert_TESTDB.log.$nDate

 

#######################################################
#### listener.log                                  ####
#######################################################
nDate=`date +%Y%m%d`
cp $ORACLE_HOME/network/admin/listener.log $ORACLE_HOME/network/admin/listener.log.$nDate
cat /dev/null > $ORACLE_HOME/network/admin/listener.log
compress -vf $ORACLE_HOME/network/admin/listener.log.$nDate

 

#######################################################
#### audit                                         ####

#######################################################
# 1주일이 지난 *.aud를 찾아 삭제
find $ORACLE_BASE/admin/TESTDB/adump \( -ctime +7 -name '*.aud' \) -exec rm -f {} \;

 

#######################################################
#### .trc                                          ####
# 30일이 지난 *.trc를 찾아 삭제                    ####
#######################################################
find $ORACLE_BASE/admin/TESTDB/bdump \( -ctime +30 -name '*.trc' \) -exec rm -f {} \;
find $ORACLE_BASE/admin/TESTDB/udump \( -ctime +30 -name '*.trc' \) -exec rm -f {} \;

 

#######################################################
#### archive log                                   ####
#######################################################
# 3일이 지난 *.arc를 찾아 삭제
find /archive_log \( -ctime +3 -name '*.arc' \) -exec rm -f {} \;

 

#########################################################
# 특정 디렉토리가 70%이상이면 3일지난 *.arc를 찾아 삭제 #
#########################################################
#!/usr/bin/ksh
A=`df -k /archive_log | grep -v "용량" | awk '{print $5}' | sed 's/%//'`
if [ $A > 70 ] ;
then
    find /archive_log \( -ctime +3 -name '*.arc' \) -exec rm -f {} \;
fi

728x90

+ Recent posts