Linux定时清理Oracle归档日志

11 篇文章 0 订阅

目录

1.清理Oracle归档日志脚本

1.1创建脚本

1.2编辑脚本

1.3授权

2.Linux定时任务

2.1切换用户

2.2查看定时任务列表

2.3创建定时任务

3.问题记录


1.清理Oracle归档日志脚本

1.1创建脚本

mkdir /home/del_arch

touch /home/del_arch/del_arch.sh

1.2编辑脚本

vim /home/del_arch/del_arch.sh

#! /bin/bash

source /etc/profile

#记录归档删除的日志

exec >> /home/del_arch/del_arch`date +%F-%H`.log

echo "------`date`----------"

rman target / <<EOF

#检查日志

crosscheck archivelog all;

#删除一天前日志

delete noprompt force archivelog all completed before 'sysdate';

exit;

EOF

echo "------FINISHED----------"

注:

  1. source /etc/profile 为必填项。若只用命令测试没有该选项能够调用成功,作为定时任务时,需要重新加载环境变量。若Oracle环境变量在.bash_profile内,则需要修改为source ~/.bash_profile
  2. exec >> /home/del_arch/del_arch`date +%F-%H`.log 已经记录日志,定义定时任务时,无需再次指定日志文件。
  3. rman target / <<EOF 使用的是Oracle用户的命令,所以如果想直接运行测试效果,应在Oracle用户下运行并测试脚本。

1.3授权

chmod 777 -R /home/del_arch/

2.Linux定时任务

2.1切换用户

su - oracle

2.2查看定时任务列表

crontab -l

注:

每个用户都有自己的定时任务,因rman为Oracle用户的命令,则应在Oracle用户下创建定时任务

2.3创建定时任务

crontab -e

0 0 * * * /home/del_arch/del_arch.sh

注:

  1. 编辑过程类似vim文件
  2. 意思为每天凌晨12点执行该脚本
  3. 例如:30 10 * * * 每天十点半执行,第一个数字为分钟,第二个数字为小时
  4. 测试时,建议采用最近1-2分钟时间让其自动调用执行,并查看日志文件记录的内容是否达到效果,再修改指定时间。

3.问题记录

-bash- : :[: unary operator expected

修改配置文件内容

vim /etc/profile

找到对应行

if [$user = "oracle"]; then

修改为如下内容(单括号改为双括号变成了两个中括号)

if [[$user = "oracle"]]; then

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值