对于管理多套系统的dba来说,每天查看数据库运行日志是必做的功课,自我感觉遇到最苦力和繁琐的事情是转移定位到特定目录只能才能查看日志,对于RAC环境下尤其是需要查看除了db之外的日志:asm、crs等等,为了简化这个步骤,整理了下面的脚本,可以拷贝运行或者做成一个shell脚本,当然相关的环境变量需要修改就是了。
export LC_ALL=EN
export LANG=EN
today=`date +%a' '%b' '%d`
dblog=/opt/app/admin/RAC/bdump/alert_RAC1.log
asmlog=/opt/app/admin/+ASM/bdump/alert_+ASM1.log
cat -n $dblog | grep "$today" -A 100000000 > ~oracle/dblog.log
cat -n $asmlog | grep "$today" -A 100000000 > ~oracle/asmlog.log
上述脚本中我只指定查看db和asm的日志,当中的目录其实也可以使用环境变量来替换,只是查看从今天开始的日志,并且把相关的日志重定向到oracle的home目录下,可以根据需要加上过滤词,比如error、ora-等等关键词,如果系统比较文定,可以直接在重定向之前就可以过滤了。
查看日志的办法有很多,有更高级的脚本、有在db中使用外部表直接查看的,我这是比较简便和简单办法。嗯呵!
update@2011.12.6
#!/bin/sh
export LC_ALL=EN
export LANG=EN
dblog=/opt/app/oracle/admin/portal/bdump/alert_portal.log
day2ago=`date -d '2 days ago' +%a' '%b' '%e`
#asmlog=/opt/app/oracle/admin/portal/bdump/alert_portal.log
cat -n $dblog | grep "$day2ago" -A 100000000 > ~oracle/dblog.log
#cat -n $asmlog | grep "day2ago" -A 100000000 > ~oracle/asmlog.log
修正了日期格式,修改了查看天数为2天前,适用于周末情况。
-The End-