ITPub博客

首页 > 数据库 > Oracle > Oracle 跟踪/告警/监听日志的清理脚本

Oracle 跟踪/告警/监听日志的清理脚本

原创 Oracle 作者:maohaiqing0304 时间:2017-03-27 15:05:34 0 删除 编辑


作者:lōττéry©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]



**** 避免太多小文件导致系统的索引空间不足..

[root ~]# cat del_oracle_log.sh
#!/bin/bash
source /home/oracle/.bash_profile

function audit_log()
{   #---audit_log日志跟踪文件
    #audit_log=$(strings $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora|grep -i audit_file_dest|awk -F'=' '{print $NF}'|sed "s/'//g")
    audit_log=`sqlplus  -s /nolog <<END
    connect lottery/lottery
    set feedback off
    set head off
    select value from v\\$parameter where name='audit_file_dest';
END` 
    cd $audit_log
    pwd=`pwd`
    if [ $audit_log == $pwd ]
      then 
         ls | xargs -n 10 rm -rf
         echo '-------------------清理完------'$audit_log'路径'
    fi 
}

function log_xml()
{   #---Diag Alert -- log.xml文件的处理  只保留一个log.xml即可
    log_xml=$(dirname `lsnrctl show log_file|grep -i log_file|awk '{print $NF}'`)
    cd $log_xml
    pwd=`pwd`
    if [ $log_xml == $pwd ]
     then  
      echo `ls |grep  -v log.xml` | xargs -n 10 rm -rf
      echo '-------------------清理完------'$log_xml'路径'
    fi
}

function listener()
{   #---listener.log文件的处理 
    listener_log=$(lsnrctl show trc_directory|grep -i trc_directory|awk '{print $NF}')
    cd $listener_log
    pwd=`pwd`
     if [ $listener_log == $pwd ]
       then  
         echo '' > listener.log
         echo '-------------------清理完------'$listener_log'/listener.log'
     fi
}

function alert_log()
{   #----alert.log以外的文件清理 
    alert_log=`sqlplus  -s /nolog <<END
    connect lottery/lottery
    set feedback off
    set head off
    select value from v\\$diag_info where upper(name)=upper('Diag trace');
END`
    cd $alert_log
    pwd=`pwd`
    if [ $alert_log  == $pwd ]
      then
      echo `ls |grep  -v alert `| xargs -n 10 rm -rf
      echo '-------------------清理完------'$alert_log'路径' 
   fi
}

function main()
{     
    if [ `ps -ef|grep oracle|grep -i smon|grep -v grep|wc -l` -eq 1 ]
     then 
      echo '----------------'`date`'------------------开始清理---------------------------'
       #/*每天清理audit_log(跟踪)、log_xml*/ 
       audit_log
       log_xml
       #/*每月1号清理alert_log{异常分析}、listener(监听log)*/ 
       date_=`date +%d`
        if  [ $date_  -eq 1 ] 
          then
           alert_log
           listener
         fi
      echo '----------------'`date`'------------------结束清理---------------------------' 
      fi
}

main



DB创建用户:
     SQL> create user lottery identified by lottery;
     SQL> grant connect to lottery ;
     SQL> grant select any table to lottery;
     SQL> grant select any dictionary to lottery;


此条目发表在 Oracle 分类目录。将固定连接加入收藏夹。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28602568/viewspace-2136129/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论
擅长SQL编写及SQL优化,分析瓶颈,性能调优、故障处理,根据实际情况定制备份策略; 擅长编写脚本来实现自动化功能,600+SQL优化经验案例,为人热爱学习,喜欢钻研技术,对工作认真负责。

注册时间:2013-03-13

  • 博文量
    121
  • 访问量
    2320451