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

database

在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!

以上是 Oracle归档日志自动清理作业实现 的全部内容, 来源链接: utcz.com/z/531545.html

回到顶部