oracle 11g删除归档日志,oracle 11g生产环境清理归档日志脚本

最近几个客户生产环境都遇到一些故障,原因就是开归档,没有部署删除归档定时任务,以下大家可以参考,经过本人测试,在生产环境上正常运行。

**roidba删除归档日志脚本**

一、基于RHEL6服务器端的归档日志删除脚本

生产库部署环境:

数据库:Oracle 11.2.0.4

操作系统:RHEL 6.6

第一步:设置control_file_record_keep_time

此参数很重要,备份记录、归档记录等都会存放在控制文件中,而此参数提供保留记录的时间段,默认值为7天。通常我们要设置此参数大于备份文件保留的时间段。这里我们设置31天。

操作如下:

SQL> show parameter keep_time

NAME TYPE VALUE

---------------------------------------- ---------------------- ------------------------------

control_file_record_keep_time integer 7

SQL>

SQL> alter system set control_file_record_keep_time=31 scope=both; --动态参数

SQL> show parameter keep_time

NAME TYPE VALUE

---------------------------------------- ---------------------- ------------------------------

control_file_record_keep_time integer 31

第二步:创建detele_archivelog.sh脚本

选择存放脚本的路径

$ mkdir -p /home/oracle/scripts   --创建脚本存放目录

$ cd /home/oracle/scripts   --打开/home/oracle

$ touch delete_archivelog.sh  --创建脚本

$ chmod 755 delete_archivelog.sh   --赋予读写权限

$ vi delete_archivelog.sh  --编辑脚本

注意修改ORACLE_SID ,log路径要写绝对路径,不写绝对路径会导致单独执行成功,定时任务执行时找不到对应的log

脚本:

cat > /home/oracle/scripts/delete_archivelog.sh <

#!/bin/bash

#Author Roidba

#FileName: delete_archivelog.sh

#Date: 2019-01-25

#DESC: Delete all complete before 5 days archivelog.

export ORACLE_SID=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

$ORACLE_HOME/bin/rman log=/home/oracle/scripts/rman_archive.log <

connect target sys/oracle@orcl

run{

crosscheck archivelog all;

delete noprompt expired archivelog all;

delete noprompt archivelog all completed before 'sysdate - 5';

}

exit;

EOF

eof

第三步:执行detele_archivelog.sh脚本

$sh delete_archivelog.sh   --执行脚本

查看对应日志执行成功

第四步:添加crontab计划任务

使用oracle用户添加例行任务:

crontab -l --查看计划任务

crontab -e --编辑计划任务

新打开的窗口中添加一下内容:

0 1 * * * /home/oracle/scripts/delete_archivelog.sh

----每天1点执行

编辑完成后按Esc键,输入“:wq”存盘退出

关于crontab每一列的含义可以参考一下内容:

# more /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

第五步:执行验证

1、查看执行计划是否自动启动

ps -ef | grep crond #判断定时服务是否启动

service crond start|stop|restart #启动、停止或重启服务

crontab -l #查看是否有正确添加定时任务

2、crontab成功执行验证:

在root下执行tail -f /var/log/cron,监控cron日志来确保crontab的成功执行:

在oracle下执行tail -f /var/spool/mail/oracle

或者在 oracle 下执行mail 查看最近的日志看执行情况

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值