본문 바로가기
Database/Oracle

RMAN 을 이용한 Daily Archive Log 삭제 스케쥴러 (Delete daily archive log using rman)

by DBTechBiz 2022. 9. 8.

RMAN 을 이용한 Daily Archive Log 삭제 스케쥴러

ASM 을 사용할 경우 Archive Log 파일을 ASM 에서 관리함으로써,

RMAN 을 이용하여 Archive Log 파일을 삭제하는 스케쥴러를 소개하고자 한다.



1. Archive Log 파일 삭제 Shell Script

# /home/oracle/script/archivelog/archive_del.sh

./home/oracle/.bash_profile #profile 경로 환경에 맞게 수정

sqlplus / as sysdba <<EOF
col file_type for a30
col dates for a18
set linesize 100
SELECT file_type
     , percent_space_used_number_of_files
     , to_char(sysdate, 'YYYYMMDD HH24:MI:SS') dates
  FROM v$flash_recovery_area_usage;
exit
EOF

rman target / <<EOF1
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'sysdate-1'; #하루 전 archive 삭제
exit
EOF1

sqlplus / as sysdba <<EOF2
col file_type for a30
col dates for a18
set linesize 100
SELECT file_type
     , percent_space_used_number_of_files
     , to_char(sysdate, 'YYYYMMDD HH24:MI:SS') dates
  FROM v$flash_recovery_area_usage;
exit
EOF2

 

2. crontab 등록 (경로는 환경에 맞게 수정)

# crontab -e

# archive log delete (everyday 6:00 am)
0 */6 * * * sh /home/oracle/script/archivelog/archivelog_del.sh > /home/oracle/script/archivelog/log/archivelog_del_$(date + '\%Y\%m\%d\%H').log

 

[참고] 수동 Archive Log 삭제

-- crosscheck 로 감지된 모든 expired archive log file 삭제
rman target /
CROSSCHECK ARCHIVELOG ALL;
DELETE EXPIRED ARCHIVELOG ALL;

-- 1일전 모든 archive log file 삭제
rman target /
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'sysdate-1';
반응형

댓글