前言:公司搭建了DataGuard,刚开始没有注意备库归档日志的管理,系统运行了一段时间之后,发现备库的空间被归档日志给撑爆了。
解决思路:ORACLE提供了一个视图可以查看归档日志的执行情况,只要归档日志已经被应用了,就可以通过操作系统进行删除。
查看归档日志的运用脚本:select sequence#,applied from v$archived_log order by sequence#;
以下是我配置的操作系统的定时删除脚本:
#!/bin/sh export PATH ORACLE_SID=orcl TABLE='v$archived_log' export ORACLE_BASE ORACLE_SID export ORACLE_HOME=/u01/app/oracle/product/OraDb11g_home1 export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch $ORACLE_HOME/bin/sqlplus -silent "/ as sysdba" /home/oracle/deleteorclarch.sh set heading off; set pagesize 0; set term off; set feedback off; set linesize 32767; select 'rm -rf '||name from ${TABLE} where DELETED='NO' and APPLIED='YES'; exit; EOF sh /home/oracle/deleteorclarch.sh rman target / crosscheck archivelog all; delete noprompt expired archivelog all; exit; END |
通过crontab每天定时运行脚本即可;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本文作者:JOHN
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++