我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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 <<eof
#!/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 <<EOF       
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 查看最近的日志看执行情况

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下Oracle归档日志自动清理脚本代码(sh)

#!/bin/sh export BACK_DATE=`date +%Y%m%d` export BACKUP_PATH=/home/oracle/dbbak echo `mkdir -p ${BACKUP_PATH}/archivelog
2022-06-04

Linux下如何实现Oracle归档日志自动清理脚本代码

这篇文章主要介绍Linux下如何实现Oracle归档日志自动清理脚本代码,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:#!/bin/sh export BACK_DATE=`date +%Y%m%d` ex
2023-06-09

编程热搜

目录