Oracle使用rman定时清除7天前的日志

这一篇正规的DBA看到肯定会呲之以鼻,但对于没有用过oracle的系统运维来说,就是必须知道的事情了。

公司的 Oracle 实例有两台数据库,定时用rman备份,但是没有自动清理机制 ,过一阵子磁盘就会超过 80% 告警,需要手动清理,烦不胜烦。

凡是要手动做三次的事情必须自动化处理,启荣大师如是说,照办就是。

 1cat del_log.sh
 2
 3#!/bin/bash
 4
 5source /home/oracle/.bash_profile
 6
 7rman target / << EOF
 8delete noprompt archivelog until time 'sysdate-7';
 9exit;
10EOF

很简单吧。上面引用的 .bash_profile 内容如下:

 1# .bash_profile
 2
 3# Get the aliases and functions
 4if [ -f ~/.bashrc ]; then
 5        . ~/.bashrc
 6fi
 7
 8# User specific environment and startup programs
 9
10PATH=$PATH:$HOME/.local/bin:$HOME/bin
11export PATH
12export ORACLE_BASE=/data/u01/app/oracle
13export ORACLE_HOME=/data/u01/app/oracle/product/18.3.0/dbhome_1
14export ORACLE_SID=oradb
15export PATH=/usr/sbin:$PATH
16export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin
17export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib
18export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
19export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
20export EDITOR=vi
21umask 022

这个 del_log.sh 的脚本放进 oracle 用户的 crontab 里执行就好

10 3 * * * /usr/local/bin/del_log.sh

CoreDNS替代dnsmasq
Megacli操作磁盘的常用命令
comments powered by Disqus