每天定时任务自动清理旧的归档文件 【Linux服务器】

将 clear_oracle_archivelog 文件放到 /etc/init.d 目录下,
clear_flash_recovery_area_commend.txt 文件存放到/oracle目录下,该路径可以通过 clear_oracle_archivelog 文件的 RMAN_CMDFILE 变量指定修改。

说明:clear_oracle_archivelog 是清理归档日志的服务,改服务依赖clear_flash_recovery_area_commend.txt 文件

clear_flash_recovery_area_commend.txt

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-2';

clear_oracle_archivelog

#!/bin/sh
# chkconfig: 35 81 10
# description: 清理两天前的归档日志 
ORA_HOME=/oracle/product/database
ORA_OWNER=yh.zeng
RMAN_TARGET=sys/Sa12345678@rac
RMAN_CMDFILE=/oracle/clear_flash_recovery_area_commend.txt
LOGFILE=/var/log/clear_oracle_archivelog
RETVAL=0
case "$1" in
  'start')
            date +" %T %a %D : 清理两天前的归档日志 ..." >> $LOGFILE
            echo "清理两天前的归档日志 ... "
            su - $ORA_OWNER -c "$ORA_HOME/bin/rman target '$RMAN_TARGET' cmdfile '$RMAN_CMDFILE'" >> $LOGFILE 2>&1
            echo "完成" >> $LOGFILE
            ;;
    *)
            echo $"Usage: $0 {start}"
            RETVAL=1
            ;;
esac
exit $RETVAL

  1. 修改 clear_flash_recovery_area里面的变量, 要做的修改如下:
    1)ORA_HOME, 该变量值为 oracle数据库安装根目录
    2)ORA_OWNER,该变量值为 数据库管理员身份的系统用户
    3)RMAN_TARGET, 该变量值为 用户名/密码@数据库服务名
    4)RMAN_CMDFILE,该变量值为 实际要执行的指令文件地址,包含文件名
    5)LOGFILE, 该变量值为 该服务的日志输出文件

  2. 修改 clear_flash_recovery_area_commend.txt里面的指令,修改BEFORE参数,该参数值是指定哪个时间点之前的归档文件要删除掉

  3. 修改/etc/crontab文件,让系统每天晚上10点钟启动clear_oracle_archivelog服务,添加的内容如下

      0 22 * * * root /etc/init.d/clear_oracle_archivelog start
  1. 开机启动clear_oracle_archivelog服务,执行如下命令
      #chkconfig  --add  clear_oracle_archivelog
      #chkconfig  --level  345  clear_oracle_archivelog  on 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值