当前位置:Gxlcms > 数据库问题 > CentOS7下设置定期清理Oracle归档日志

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

时间:2021-07-01 10:21:17 帮助过:6人阅读

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

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

用oracle用户登录

  1. [oracle@localhost data]$ sqlplus sys/password as sysdba
  2. SQL> show parameter recover;

技术图片

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

  1. SQL> archive log list;

技术图片

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

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

3. 创建shell脚本

路径:/home/oracle/del_log

  1. [oracle@localhost del_log]$ vi del_arc.sh
  2. #添加以下内容
  3. source ~/.bash_profile
  4. #记录归档删除的日志
  5. exec >> /home/oracle/del_log/log/del_arch`date +%F-%H`.log
  6. $ORACLE_HOME/bin/rman target / <<EOF
  7. crosscheck archivelog all; #检查归档
  8. delete noprompt expired archivelog all; #删除无效归档
  9. delete noprompt archivelog until time ‘sysdate-7‘; #删除7天前日志
  10. exit;
  11. EOF<br><br>[oracle@localhost del_log]$ chmod 777 del_arc.sh #赋予执行权限<br>[oracle@localhost del_log]$ ./del_arc.sh #手工执行测试是否成功<br>[oracle@localhost del_log]$ ll log #如果产生了log文件,则测试成功

4. 添加定时任务

  1. [oracle@localhost del_log]$ crontab -l # 查询已有调度任务
  2. [oracle@localhost del_log]$ crontab -e # 编辑调度任务
  3. # 每天凌晨1点执行,并将执行结果保存在task.log中
  4. 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   

人气教程排行