Oracle归档日志自动清理作业实现

倾然丶 夕夏残阳落幕 提交于 2019-12-05 14:47:24

在Oracle数据库开启了归档日志模式的情况下,归档日志会不断积累,如果不定时关注维护,可能会让归档日志把磁盘空间撑爆,并且若把归档目录设置在快速恢复区里,可在短时间内把该区撑爆,从而让数据库无法归档,数据库会挂起无法响应,影响严重!下面方案是部署自动化作业,定时清理历史归档日志,从而避免上述的归档日志撑爆的隐患。

LINUX下自动清理归档脚本(自动清理7天前的历史归档日志):

#/bin/sh
source ~/.bash_profile
rman target / log /home/oracle/rman.log <<EOF
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
YES
exit;
EOF

如实现每天记录一个执行日志文件,可用下面的详细版:

#!/bin/bash
source ~/.bash_profile

LOGDIR=$HOME/delete_archivelog
LOGFILE=$LOGDIR/delete_$(date +%Y-%m-%d).log
if [ ! -d $LOGDIR ]
             then
                mkdir -p $LOGDIR
fi

 delete archivelog in 3 days
$ORACLE_HOME/bin/rman target / <<script > $LOGFILE
crosscheck archivelog all;
delete archivelog all completed before 'sysdate-3';
YES
exit;
script

上述脚本生成后,可在Linux的crontab任务,或windows的自动计划任务程序里设置定时任务,每天执行一次即可!

©版权声明:本文为天凯DBS的原创文章,转载请附上原文出处链接及本声明,否则将追究法律责任。

更多DBA案例请关注访问天凯DBS

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!