linux定时删除oracle自动归档日志

场景:如果不及时清理oracle的自动归档日志,可能会导致磁盘分区占满,导致oracle挂载

版本:oracle 11.2.0.4.0

归档日志的默认路径:oracle安装目录/flash_recovery_area/实例名/archivelog

感谢这位老哥:https://blog.csdn.net/weixin_43969688/article/details/118799768

1. 创建定时清理脚本:vim clear_archivelog.sh

#!/bin/bash

# 删除归档脚本
# 修改区域
# ==========================
# 1. 指定生成删除归档日志的存放路径
log_dir=/home/oracle/myclearlog

# 如果无目录创建目录 
if ! test -d ${log_dir}
    then
    mkdir -p ${log_dir}                                                                   
fi

# 自动执行区域
# ================================
# 脚本执行日期
TODAY=`date +%y%m%d`
msg_log=${log_dir}/clear_archivelog_${TODAY}.log
run_log=./run.log

# 补充调用环境变量
if [ -f ~/.bash_profile ];
then
. ~/.bash_profile
fi

# 清除失效归档,删除1天前归档,并记录
$ORACLE_HOME/bin/rman target / msglog=${msg_log} append <<EOF
crosscheck archivelog all;
delete noprompt expired archivelog all;
delete noprompt archivelog until time 'sysdate-1';
exit;
EOF

# 记录操作结果
RC=$?

# 记录磁盘使用情况
echo -e "\n------------------------" >> ${msg_log}
echo "------ Disk Space ------" >> ${msg_log}
df -h >> ${msg_log}

# 判断,汇报清除归档结果
if [ "$RC" == 0 ]; then
    echo "------ no error occured ------" >> ${msg_log}
else
    echo "------ error ------" >> ${msg_log}
fi

echo -e "$(date +%y%m%d) : $(grep error ${msg_log})" >> ${run_log}

2. 给脚本授权:chmod 777 clear_archivelog.sh

3. 添加脚本到linux定时任务,每天凌晨1点运行:crontab -e

00 01 * * * sh 加上你脚本的绝对路径
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值