如果Oracle数据库hang住了,对Oracle做system dump,或做 hang analyze,是研究和解决问题的有效办法。如果能够连接数据库,并能够进行操作,那么用oradebug是简单快捷的办法。
OracleHANGANALYZE 功能诊断 DBhanging
http://blog.csdn.net/tianlesoftware/article/details/6321961
Oracleoradebug 命令 使用说明
http://blog.csdn.net/tianlesoftware/article/details/6525628
SYS@anqing1(rac1)> oradebug setmypid
Statement processed.
SYS@anqing1(rac1)> oradebug dump systemstate 10
Statement processed.
SYS@anqing1(rac1)> oradebug tracefile_name
/u01/app/oracle/admin/anqing/udump/anqing1_ora_8725.trc
SYS@anqing1(rac1)> oradebug close_trace
Statement processed.
在系统hung的时候,systemstate基本等同于hanganalyze,可以用于诊断system hung。但是如果直接来查看这个trace file,比较麻烦,这时候可以使用ass.awk 脚本来帮助我们查看trace file。
Ass.Awk 脚本在LTOM的ltom431\ltom\tom_base\tom\src目录下,其名称是:ass109.awk。这个是目前的最新版本,ass.awk 脚本可以帮助我们分析和格式化system state dump。
LTOM的MOS说明:
LTOM - TheOn-Board Monitor User Guide [ID 352363.1]
LTOM 的下载地址:
http://download.csdn.net/detail/tianlesoftware/4047944
在看AWK, awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。
关于AWK的更多内容参考:
Linux awk 命令 说明
http://blog.csdn.net/tianlesoftware/article/details/6278273
我们这里使用的是AWR命令的 -fscripfile 参数,即从脚本文件中读取awk命令。这个脚本就是我们LTOM中的ass109.awk。
示例:
[oracle@rac1 src]$ awk -f ass109.awk /u01/app/oracle/admin/anqing/udump/anqing1_ora_8725.trc
Starting Systemstate 1
...................................
Ass.Awk Version 1.0.9 - Processing/u01/app/oracle/admin/anqing/udump/anqing1_ora_8725.trc
System State 1
~~~~~~~~~~~~~~~~
1:
2:waiting for 'pmon timer'wait
3:waiting for 'DIAG idle wait'wait
4:waiting for 'rdbms ipc message'wait
5:waiting for 'rdbms ipc message'wait
6:waiting for 'ges remote message'wait
7:waiting for 'gcs remote message'wait
8:waiting for 'rdbms ipc message'wait
9:waiting for 'rdbms ipc message'wait
10: waiting for 'rdbms ipc message' wait
11: waiting for 'rdbms ipc message' wait
12: waiting for 'buffer busy waits'(2,89,21) wait
13: waiting for 'rdbms ipc message' wait
14: waiting for 'enq: JS - queue lock'[Enqueue JS-00000000-00000001] wait
15: waiting for 'buffer busy waits'(2,89,21) wait
16: waiting for 'rdbms ipc message' wait
17:
18:
19: waiting for 'rdbms ipc message' wait
20: waiting for 'log file switch (archivingneeded)' wait
21: waiting for 'ASM background timer' wait
22: waiting for 'rdbms ipc message' wait
23: waiting for 'log file switch (archivingneeded)' wait
24: last wait for 'SQL*Net message fromclient'
25: for 'Streams AQ: waiting for messagesin the queue' wait
26: waiting for 'Streams AQ: qmn slave idlewait' wait
27: waiting for 'rdbms ipc message' wait
28: waiting for 'rdbms ipc message' wait
29: waiting for 'class slave wait' wait
30:
31: waiting for 'Streams AQ: qmncoordinator idle wait' wait
32: waiting for 'SQL*Net message fromclient' wait
34: waiting for 'SQL*Net message fromclient' wait
36: waiting for 'jobq slave wait' wait
37: for 'Streams AQ: waiting for timemanagement or cleanup tasks' wait
Blockers
~~~~~~~~
Above is a list of all the processes. If they are waiting for a resource
then it will be given in square brackets. Below is a summary of the
waited upon resources, together with the holder of that resource.
Notes:
~~~~~
o A process id of '???' implies that the holder was not found in the
systemstate.
Resource Holder State
Enqueue JS-00000000-00000001 23: waiting for 'log file switch (archivingneeded)'
Object Names
~~~~~~~~~~~~
Enqueue JS-00000000-00000001
48768 Lines Processed.
[oracle@rac1 src]$
这个使用ass.awk 处理之后的结果就直接查看trace 直观很多:
[oracle@rac1 src]$ head -100/u01/app/oracle/admin/anqing/udump/anqing1_ora_8725.trc
/u01/app/oracle/admin/anqing/udump/anqing1_ora_8725.trc
Oracle Database 10g Enterprise EditionRelease 10.2.0.4.0 - Production
With the Partitioning, Real ApplicationClusters, OLAP, Data Mining
and Real Application Testing options
ORACLE_HOME =/u01/app/oracle/product/10.2.0/db_1
System name: Linux
Node name: rac1
Release: 2.6.18-194.el5
Version: #1 SMP Tue Mar 16 21:52:43 EDT 2010
Machine:i686
Instance name: anqing1
Redo thread mounted by this instance: 1
Oracle process number: 24
Unix process pid: 8725, image: oracle@rac1(TNS V1-V3)
*** 2012-02-06 20:32:20.758
*** ACTION NAME:() 2012-02-06 20:32:20.755
*** MODULE NAME:(sqlplus@rac1 (TNS V1-V3))2012-02-06 20:32:20.755
*** SERVICE NAME:(SYS$USERS) 2012-02-0620:32:20.755
*** SESSION ID:(118.34295) 2012-02-0620:32:20.755
===================================================
SYSTEM STATE
------------
System global information:
processes: base 0x30e0ec78, size 150, cleanup 0x30e1dff8
allocation: free sessions 0x30e5a6c4, free calls (nil)
control alloc errors: 0 (process), 0 (session), 0 (call)
PMON latch cleanup depth: 0
seconds since PMON's last scan for dead processes: 64
system statistics:
313621 logons cumulative
30 logons current
14842838 opened cursors cumulative
….
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
Email: tianlesoftware@gmail.com
Skype: tianlesoftware
Blog: http://www.tianlesoftware.com
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----
DBA1 群:62697716(满); DBA2 群:62697977(满)DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群:83829929 DBA5群: 142216823
DBA6 群:158654907 DBA7 群:172855474 DBA总群:104207940
分享到:
相关推荐
ass.awk工具用在数据库hang住时分析收集到的systemstate...这个是目前的最新版本,ass.awk 脚本可以帮助我们分析和格式化system state dump。 LTOM的MOS说明: LTOM - TheOn-Board Monitor User Guide [ID 352363.1]
SQL> oradebug dump systemstate 266 Statement processed. SQL> oradebug tracefile_name /oracle/ora10g/admin/jscn/udump/jscn1_ora_7755.trc SQL> exit Disconnected from Oracle Database 10g Enterprise ...
# Usage: [n]awk -f ass.awk fname.trc (But read the Portability Section !!) # # Configuring Ass: # # By default, 'ass' attempts to dump as much information as possible and # assumes that the output is...
oracle trace 文件分析工具,oracle公司提供,对分析数据库hung很有帮助
利用estream的tools的save statistics保存每帧的起点和长度,文件格式为.csv; 使用idx.awk工具,./idx.awk aa.csv > aa.idx进行转换;
oracle系统状态trace文件分析器 当系统hang住时,或者进程间有阻塞时,你可以产生下面两种跟踪文件,一种是进程状态跟踪文件,一种是系统状态跟踪文件: process state dumps ==> 一个进程的所有对象状态,...
awk.Effective.awk.Programming.Universal.Text.Processing.and.Pattern.Matching.4th
Effective.Awk.Programming.3rd 高效awk编程,高清文字版
showlinenum.awk - 显示 git diff 的行号 这个 gawk 脚本改变了 git diff 的输出以在每一行前面加上行号。 用法 git diff [options] | showlinenum.awk [options] showlinenum 的所有选项都需要一个值,并使用格式...
JSON.awk 用awk编写的实用JSON解析器。介绍JSON.awk是一个独立的单文件程序,没有任何外部依赖关系。 它类似于 ,这是用Bash编写的JSON解析器-于2013-03-13检索以构成JSON.awk的基础。 从那时起,这些项目便分开了...
【awk】1-awk基础篇(又名UNIX.Shell.awk).doc
windows 下的awk 命令工具
无线trace中路由发现频率指每秒中发起的路由发现次数,这个文件可以专门用脚本awk来分析路由发现频率
awk 工具用法说明 awk 工具用法说明 awk 工具用法说明
VASP-poscar2lammps.awk
AWK使用简介.pdf AWK使用简介.pdf AWK使用简介.pdf AWK使用简介.pdf
1. awk简介 2. awk命令格式和选项 2.1. awk的语法有两种形式 2.2. 命令选项 3. 模式和操作 3.1. 模式 3.2. 操作 4. awk的环境变量 5. awk运算符 6. 记录和域 6.1. 记录 6.2. 域 6.3. 域分隔符 7. gawk专用...
在windows编译httpd2.2.4时需要的awk.exe,apache官方网站上下载连接失效,这是本人从cygwin中提取的,已附带必要dll。 使用时建议放在X:\Program Files\Microsoft Visual Studio\VC98\Bin中。 <br>ps: ...
执行 gawk -f atuhrough.awk 文件名.tr > myThrough //保存结果到myThrough文件 然后将处理吞吐量结果生成png图片执行如下命令即可生成吞吐量图片: gnuplot //进入gnuplot set terminal png size 640,480 //设置...
各范例由浅入深, 彼此间相互连贯,范例中并对所使用的awk语法及指令辅以必要的说明. 有关 awk的指令, 函数,...等条列式的说明则收录于附录中, 以利读者往后撰写程序时查阅. 如此编排, 可让读者在短时间内顺畅地学会...