码迷,mamicode.com
首页 > 数据库 > 详细

CentOS7下设置定期清理Oracle归档日志

时间:2020-07-15 01:09:51      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:dir   创建   https   img   oss   recover   word   存放位置   date   

Oracle归档日志若不定期清理将占用很大存储空间,在Linux环境下我们可以用shell脚本实现清理(Window下用bat同理)。

1. 查看归档日志存放位置

用oracle用户登录

[oracle@localhost data]$ sqlplus sys/password as sysdba

SQL> show parameter recover;

技术图片

如果更改过归档日志路径,请执行archive log list;查看:

SQL> archive log list;

技术图片

2. 创建归档日志存放路径

[oracle@localhost db_1]$ mkdir /home/oracle/del_log
[oracle@localhost db_1]$ mkdir /home/oracle/del_log/log
[oracle@localhost db_1]$ chown -R oracle:oinstall /home/oracle/del_log/log

3. 创建shell脚本

路径:/home/oracle/del_log

[oracle@localhost del_log]$ vi del_arc.sh
#添加以下内容
source ~/.bash_profile
#记录归档删除的日志
exec >> /home/oracle/del_log/log/del_arch`date +%F-%H`.log  
$ORACLE_HOME/bin/rman target / <<EOF
crosscheck archivelog all;  #检查归档
delete noprompt expired archivelog all; #删除无效归档
delete noprompt archivelog until time ‘sysdate-7‘;  #删除7天前日志
exit;
EOF

[oracle@localhost del_log]$ chmod 777 del_arc.sh #赋予执行权限
[oracle@localhost del_log]$ ./del_arc.sh #手工执行测试是否成功
[oracle@localhost del_log]$ ll log #如果产生了log文件,则测试成功

4. 添加定时任务

[oracle@localhost del_log]$ crontab -l   # 查询已有调度任务
[oracle@localhost del_log]$ crontab -e  # 编辑调度任务
# 每天凌晨1点执行,并将执行结果保存在task.log中
00 1 * * * sh /home/oracle/del_log/del_arc.sh >> /data/oracle/del_log/task.log 2>&1 &

 

参考:

https://blog.csdn.net/mgxiaomage/article/details/73863375

https://www.jianshu.com/p/8c13a4c9539e

https://blog.csdn.net/weixin_45558989/article/details/101293884

 

CentOS7下设置定期清理Oracle归档日志

标签:dir   创建   https   img   oss   recover   word   存放位置   date   

原文地址:https://www.cnblogs.com/hawking8su/p/13303158.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!