虽然都吵着要上云,但到了年底了,该巡检的活,还得一个不漏的做。很多兄弟一下就被分配了30个数据库,3天。怎么做?这样也只能看看性能,看看日志。看性能可以跑跑awr, 也可以跑awrcrt。但分析日志呢?虽然有adrci,但用起功能并不多。很多人依旧是采用grep ORA-土办法,遇到数据库报错困难户,则会看花眼。鉴于最近已经多个兄弟来问我要快速巡检工具(需求真大啊),
所谓有需求,则有创造,这里给大家分享一个python 3.0编写的日志分析工具:ORA Log Analyzer
ORA Log Analyzer提供了一种最轻量级和便捷的oracle alert日志,ASM日志的分析方法,能够快速的统计(列表,图表)最近数据块的错误信息。该工具无需安装,直接运行。
在本地xml中自定义自己的ORA-错误“严重级别”知识库。通过长时间的积累,可以成为一个非常有价值的知识库。目前已经自带近百种ORA错误的定义。
功能:
1. 对所有的ORA-错误按severity级别进行汇总。
也可以按时间线显示,你想看的一个或者多个ORA-错误的,完整时间线。
输入list ORA-error可以打印制定的ORA-错误历史,可以制定多个错误号,用逗号分隔
Enter your input: list ORA-3136,ORA-03135
Received input is : list ORA-3136,ORA-03135
2018-08-0818:31:01||ORA-03135||ORA-03135: connection lost contact
2018-08-0818:31:01||ORA-03135||ORA-03135: connection lost contact
2018-08-0818:31:01||ORA-03135||ORA-03135: connection lost contact
2018-08-0915:25:03||ORA-03135||ORA-03135: connection lost contact
2018-08-0915:31:21||ORA-3136||WARNING: inbound connection timed out (ORA-3136)
2018-08-0915:46:42||ORA-3136||WARNING: inbound connection timed out (ORA-3136)
2018-08-0917:26:09||ORA-3136||WARNING: inbound connection timed out (ORA-3136)
2018-08-1016:39:02||ORA-03135||ORA-03135: connection lost contact
2018-08-1016:39:02||ORA-03135||ORA-03135: connection lost contact
2018-08-1017:01:54||ORA-03135||ORA-03135: connection lost contact
2018-08-1017:08:10||ORA-3136||WARNING: inbound connection timed out (ORA-3136)
2018-08-1017:29:42||ORA-3136||WARNING: inbound connection timed out (ORA-3136)
2018-09-2711:00:34||ORA-03135||ORA-03135: connection lost contact
2018-09-2711:00:34||ORA-03135||ORA-03135: connection lost contact
2. 可以绘制热点图。最多支持4个类型的ORA-在图中显示
图表难看?没关系,你自己改。没安装python 3? 自行度娘。
功能说明:
运行
python logAnalyzer.py
#测试配置文件开始
ORA-04031 unable toallocate ? bytes of shared memory
#测试配置文件结束
选择日志的编码方式
选择编码方式-chooseyour character code,输入编号(1/2):
1 = gb2312
2 = utf-8
暂时我们只发现了这两种编码,如果需更多请自行修改代码,或者联系我们
[Enter your selectcharacter code no(1/2):]1输入编号
You choose :gb2312
选择日志文件,日志文件需要放在当前目录下的alertlog目录中,下面会list出所有的日志文件
Please choose log file,
['alert_acdbzhon1.log','alert_aczhondg1.log', 'alert_custadg_20190911.log','alert_custdb1_20190911.log', 'alert_custdb2_20190911.log','alert_custdb3_20190911.log', 'alert_custdb4_20190911.log','alert_jfdb1_20190911.log', 'alert_jfdb2_20190911.log','alert_jfdb3_20190911.log', 'alert_jfdb4_20190911.log', 'alert_nxrs7db1.log','alert_nxrs7db2.log', 'alert_nxyijing1.log', 'alert_nxyijing2.log','alert_orcl1.log', 'alert_orcldg1.log', 'alert_orcldg2.log','alert_orderdb1_20190911.log', 'alert_orderdb2_20190911.log','alert_orderdb3_20190911.log', 'alert_orderdb4_20190911.log', 'alert_scp1db','alert_ZWDBA1_20190911.log', 'alert_ZWDBA2_20190911.log','alert_ZWDBA3_20190911.log', 'alert_ZWDBA4_20190911.log','alert_ZWDBB1_20190911.log', 'alert_ZWDBB2_20190911.log','alert_ZWDBB3_20190911.log', 'alert_ZWDBB4_20190911.log']
Enter your select alertlog file: alert_acdbzhon1.log
You choose:alert_acdbzhon1.log
请选择日期格式,非常重要
1 = 1981-03-30T20:30:00 or 1981-03-30 20:30:00
2 = Mon Mar 30 20:30:001981
如果需要支持更多日期格式,请自行修改代码,或者联系我们
Enter your select dataformat: 1
You choose 1 =1981-03-30T20:30:00 or 1981-03-3020:30:00
开始分析日志.............
开始分析日志......
开始分析日志..
分析日志功能说明
USAGE:
list all 按时间线显示所有错误
list summary,list s 显示按severity归类的错误的汇总
list exception 显示还没有定义在错误码表xml中的错误
exit
list ORA-errorNumber 按时间线显示某一个或者多个ora错误
draw ORA-errorNumber 按时间线显示某绘制错误的热点图
help显示Usage
Example:
list ORA-4031
list ORA-4031,ORA-00001
Example:
drawm 0RA-4031 #draw errorchart group by minutes
drawtm 0RA-4031 #drawerror chart group by 10 minutes
drawh 0RA-4031 #draw errorchart group by hour
drawd ORA-4031 #draw errorchart group by day
输入listall会按时间顺序打印出所有的ORA-错误
分析日志功能说明
Python的源码是完全开源的,
有需求的各位原厂同僚和O记的正式客户请发邮件获取。
www.dbfine.net
2019-01-17客户需求更新版本,能够输入时间段控制图表的生成,原厂服务部同事有需求,请发邮件获取。