행위

"오라클 rman 아카이브로그 삭제"의 두 판 사이의 차이

DB CAFE

(RMAN 아카이브로그 일일 삭제 쉘 스크립트)
1번째 줄: 1번째 줄:
 +
== 아카이브 로그 조회 ==
 +
* 최대 MAX 및 현재 아카이브로그 사이즈 조회
 +
<source lang=sql>
 +
SELECT *
 +
  FROM V$RECOVERY_FILE_DEST; 
 +
</source>
 +
 
== 아카이브로그 위치 ==
 
== 아카이브로그 위치 ==
 
<source lang=sql>
 
<source lang=sql>
 
$ sqlplus / as sysdba
 
$ sqlplus / as sysdba
 
 
SQL> archive log list;
 
SQL> archive log list;
 
</source>
 
</source>
9번째 줄: 15번째 줄:
 
SQL> show parameter log_archive_format
 
SQL> show parameter log_archive_format
 
</source>
 
</source>
 +
 +
== 아카이브로그 FULL 장애 조치 ==
 +
=== db_recovery_file_dest_size 최대치 증가 ===
 +
* ORA-19809: limit exceeded for recovery files 오류 발생시
 +
<source lang=sql>
 +
SQL> alter system set db_recovery_file_dest_size=100G;
 +
</source>
 +
 +
=== 파라미터 확인/ 변경 ===
 +
<source lang=sql>
 +
SQL> show parameter db_recovery_file_dest;
 +
</source>
 +
 +
=== 아카이브 로그 삭제 ===
 +
# RMAN 이용
 +
<source lang=sql>
 +
-- 최근 3일치를 제외한 나머지 삭제
 +
RMAN> connect target /
 +
RMAN> LIST ARCHIVELOG ALL;
 +
RMAN> delete archivelog all completed before 'sysdate -3'; 
 +
</source>
 +
<source lang=sql>
 +
-- 전체 삭제
 +
RMAN> connect target /
 +
RMAN> crosscheck archivelog all;
 +
RMAN> delete expired archivelog all; -- 전체 삭제
 +
</source>
 +
 +
# OS명령어 사용
 +
 +
  
 
== RMAN 아카이브로그 삭제 ==
 
== RMAN 아카이브로그 삭제 ==

2020년 1월 9일 (목) 11:04 판

thumb_up 추천메뉴 바로가기


1 아카이브 로그 조회[편집]

  • 최대 MAX 및 현재 아카이브로그 사이즈 조회
SELECT * 
   FROM V$RECOVERY_FILE_DEST;

2 아카이브로그 위치[편집]

$ sqlplus / as sysdba
SQL> archive log list;

3 아카이브로그 포맷 확인[편집]

SQL> show parameter log_archive_format

4 아카이브로그 FULL 장애 조치[편집]

4.1 db_recovery_file_dest_size 최대치 증가[편집]

  • ORA-19809: limit exceeded for recovery files 오류 발생시
SQL> alter system set db_recovery_file_dest_size=100G;

4.2 파라미터 확인/ 변경[편집]

SQL> show parameter db_recovery_file_dest;

4.3 아카이브 로그 삭제[편집]

  1. RMAN 이용
-- 최근 3일치를 제외한 나머지 삭제
RMAN> connect target /
RMAN> LIST ARCHIVELOG ALL;
RMAN> delete archivelog all completed before 'sysdate -3';
-- 전체 삭제
RMAN> connect target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all; -- 전체 삭제
  1. OS명령어 사용


5 RMAN 아카이브로그 삭제[편집]

RMAN> LIST ARCHIVELOG LIKE '%.arc';
RMAN> LIST ARCHIVELOG ALL;
RMAN> DELETE ARCHIVELOG LIKE '%.arc';
3일치 아카이브로그 남겨두고 지우기
RMAN> delete archivelog all completed before 'sysdate -3';

6 RMAN 아카이브 로그 삭제 쉘 스크립트[편집]

rman_arch_del.sh

#!/bin/bash
export ORACLE_HOME=/oracle/app/oracle/product/12.2.0/db_home
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH

delBackup () {
rman log=/oracle/backup/arch_del.log << EOF
connect target /
DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'sysdate -3';
CROSSCHECK ARCHIVELOG ALL;
DELETE EXPIRED ARCHIVELOG ALL;
exit
EOF
}

#Main
delBackup
  • crontab 추가시

00 22 * * * /u01/app/oracle/rman_arch_del.sh > /tmp/rmanarch.log