ITPub博客

首页 > 数据库 > Oracle > 如何在系统上查看当天Oracle log切换频率

如何在系统上查看当天Oracle log切换频率

原创 Oracle 作者:maohaiqing0304 时间:2014-03-20 09:59:39 0 删除 编辑

Oracle log 每次切换会记录到告警日志中 设想写个方案来查看log切换频率来判断Oracle log是否应该更改大小..
   该文章可用于对数据库的监控检查脚本..  如果脚本中输出时间间隔在10分钟之内  或者更短的话说明您的logfile 过小或者事务数/量过大
 
具体思路和脚本如下:
思路:
1)读取Oracle告警文件名称 -->  为方便所有环境 将会用到Oracle 的环境变量中的$ORACLE_BASE/$ORACLE_SID  实现步骤如‘蓝色字样
2)文件找到 要读取当天log切换,由于每个操作系统的/etc/sysconfig/i18n显示时间格式不一,所以没有用date 读取  
   以下脚本 是利用Linux基本命令实现读取系统上当天Oracle log切换频率,实现步骤如‘绿色字样


实现步骤:..一个为例
1、查看oracle 参数文件 
[root@kfdb ~]# grep ORACLE_BASE= /home/oracle/.bash_profile
export ORACLE_BASE=/oradata2/app/oracle
2、查看该环境变量 为空
[root@kfdb ~]# echo $ORACLE_BASE

3、设定环境变量 ORACLE_BASE
[root@kfdb ~]# ORACLE_BASE=`grep ORACLE_BASE= /home/oracle/.bash_profile `
检查:
[root@kfdb ~]# echo $ORACLE_BASE
export ORACLE_BASE=/oradata2/app/oracle
4、执行export环境变量 
[root@kfdb ~]# $ORACLE_BASE
检查是否生效:
[root@kfdb ~]# echo $ORACLE_BASE
/oradata2/app/oracle
[root@kfdb ~]#

脚本如下:
#/bin/sh
ORACLE_BASE=`grep ORACLE_BASE= /home/oracle/.bash_profile `
ORACLE_SID=`grep ORACLE_SID= /home/oracle/.bash_profile `
$ORACLE_BASE
$ORACLE_SID
cd $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/
d=`grep  -A 2 "LGWR switch" alert_$ORACLE_SID.log | tail -10| grep -v  Current|grep -v Thread | tail -1|awk -F ' ' '{print $1,$2,$3}'`
grep -A 2 "LGWR switch" alert_$ORACLE_SID.log | grep -A 3 "$d" > /root/"$d".log
cd /root
grep "$d" "$d".log
#可以选择不删除  rm -rf "$d".log

#wc=`grep "$d" "$d".log|wc -l`   wc 查看结果总条目
#bc=`echo $wc-1|bc                  bc计算器
#grep "$d" "$d".log| head -$wc    

注释:
$ORACLE_SID/ORACLE_BASE : 执行上面的结果
d: 查出系统时间
grep -v:过滤掉 ...  是因为可能存在alter system switch logfile;将原放在最后行的日期更换
grep .... 显示准确的log切换时间...grep -A 3 "$d" 过滤掉了命令切换没有写内容的log 将是log切换频率的结果



SQL:
    select b.SEQUENCE#,
           b.FIRST_TIME,
           a.SEQUENCE#,
           a.FIRST_TIME,
           round(((a.FIRST_TIME - b.FIRST_TIME) * 24) * 60, 2)
      from v$log_history a, v$log_history b
    where a.SEQUENCE# = b.SEQUENCE# + 1
       and b.THREAD# = 1
    order by a.SEQUENCE# desc;

 谢谢大家阅读~
希望对您有帮助~

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

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

注册时间:2013-03-13

  • 博文量
    121
  • 访问量
    2352276