eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 深入解析Oracle - 实战案例模拟与实践30讲 | Blog首页 | 数据字典视图之:V$ENQUEUE_STATISTICS 结构 »

工具: ass109.awk 分析 Oracle 的跟踪文件
modb.pro

以前分析Oracle的跟踪文件,主要靠手工阅读,最近发现ass109.awk文件是个不错的工具,在网上找到了一个,附在这里: ass109.rar

更新墨天轮下载链接:https://www.modb.pro/download/3368

通过ass109.awk文件,可以很容易将trace文件里的内容理出脉络来,清晰的发现问题所在,土了这么多年。

解析了以前一个案例的80多M的跟踪文件,很快就可以找到其中的阻塞,Block信息:
D:\Downloads\Mo\rpt1_ora_2341>awk -f ass109.awk ora_2341.trc

Starting Systemstate 1
..............................................................................
...............................................................................
...............................................................................
............................................
Ass.Awk Version 1.0.9 - Processing ora_2341.trc

System State 1
~~~~~~~~~~~~~~~~
1:
2: waiting for 'DFS lock handle' 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 'gcs remote message' wait
9: waiting for 'gcs remote message' wait
10: waiting for 'gcs remote message' wait
11: waiting for 'gcs remote message' wait
12: waiting for 'gcs remote message' wait
13: waiting for 'gcs remote message' wait
14: waiting for 'gcs remote message' wait
15: waiting for 'gcs remote message' wait
16: waiting for 'gcs remote message' wait
17: waiting for 'gcs remote message' wait
18: waiting for 'gcs remote message' wait
19: waiting for 'gcs remote message' wait
20: waiting for 'gcs remote message' wait
21: waiting for 'gcs remote message' wait
22: waiting for 'gcs remote message' wait
23: waiting for 'rdbms ipc message' wait
24: waiting for 'rdbms ipc message' wait
25: waiting for 'rdbms ipc message' wait
26: waiting for 'rdbms ipc message' wait
27: waiting for 'rdbms ipc message' wait
28: waiting for 'rdbms ipc message' wait
29: waiting for 'rdbms ipc message' wait
30: waiting for 'rdbms ipc message' wait
31: waiting for 'rdbms ipc message' wait
32: waiting for 'rdbms ipc message' wait
33: waiting for 'rdbms ipc message' wait
34: waiting for 'rdbms ipc message' wait
35: waiting for 'rdbms ipc message' wait
36: waiting for 'control file sequential read' wait
37: waiting for 'enq: PR - contention' [Enqueue PR-00000000-00000000] wait
38: waiting for 'DFS lock handle' wait
39: waiting for 'rdbms ipc message' wait
40: waiting for 'enq: PR - contention' [Enqueue PR-00000000-00000000] wait
41: last wait for 'os thread startup'
42: waiting for 'buffer busy waits' (6a,2,d) wait
43:
44:
45: waiting for 'rdbms ipc message' wait
46: waiting for 'SQL*Net message from client' wait
47: waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
48: waiting for 'latch free' [Latch c0000000c2df3b70] wait
49: waiting for 'log file switch (checkpoint incomplete)' wait
50: waiting for 'SQL*Net message from client' wait
51: for 'Streams AQ: waiting for messages in the queue' wait
52: waiting for 'SQL*Net message from client' wait
53: waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
54:
55: waiting for 'SQL*Net message from client' wait
56: waiting for 'SQL*Net message from client' wait
57: waiting for 'SQL*Net message from client' wait
58: waiting for 'SQL*Net message from client' wait
59: waiting for 'SQL*Net message from client' wait
60: waiting for 'SQL*Net message from client' wait
61: waiting for 'log file switch (checkpoint incomplete)' wait
62: waiting for 'SQL*Net message from client' wait
63: waiting for 'SQL*Net message from client' wait
64:
65: waiting for 'SQL*Net message from client' wait
Cmd: Select
66: waiting for 'log file switch (checkpoint incomplete)' wait
67: waiting for 'SQL*Net message from client' wait
68: waiting for 'SQL*Net message from client' wait
69: waiting for 'SQL*Net message from client' wait
70: waiting for 'gc buffer busy' wait
Cmd: Insert
71: waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
72: waiting for 'PX Deq: Execution Msg' wait
Cmd: Select
73: waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
74: waiting for 'SQL*Net message from client' wait
75: waiting for 'SQL*Net message from client' wait
76: waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
77: waiting for 'SQL*Net message from client' wait
78: waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
79: waiting for 'gc buffer busy' wait
Cmd: Insert
80: waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
81: waiting for 'buffer busy waits' (69,2,d) wait
Cmd: Select
82: waiting for 'buffer busy waits' (69,2,d) wait
Cmd: Insert
83: waiting for 'DFS lock handle' wait
Cmd: Insert
84: waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
85: waiting for 'SQL*Net message from client' wait
86: waiting for 'PX Deq: Execution Msg' wait
Cmd: Select
87:
88: waiting for 'SQL*Net message from client' wait
Cmd: Select
89:
90:
91: waiting for 'gc buffer busy' wait
Cmd: Insert
92:
93:
94:
95: waiting for 'SQL*Net message from client' wait
96: waiting for 'SQL*Net message from client' wait
97: waiting for 'gc buffer busy' wait
Cmd: Insert
98: waiting for 'SQL*Net message from client' wait
99: waiting for 'SQL*Net message from client' wait
100:waiting for 'SQL*Net message from client' wait
101:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
Cmd: Drop Table
102:waiting for 'gc buffer busy' wait
Cmd: Insert
103:waiting for 'SQL*Net message from client' wait
104:
105:waiting for 'SQL*Net message from client' wait
106:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
Cmd: Select
107:
108:waiting for 'SQL*Net message from client' wait
109:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
110:
111:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
112:last wait for 'undo segment extension'
Cmd: Insert
113:waiting for 'buffer busy waits' (69,2,d) wait
Cmd: Insert
114:
115:
116:
117:
118:waiting for 'latch free' [Latch c0000000c2df3b70] wait
119:waiting for 'SQL*Net message from client' wait
Cmd: Select
120:waiting for 'SQL*Net message from client' wait
121:
122:
124:
125:
126:
127:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
128:
129:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
130:
131:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
132:
133:waiting for 'SQL*Net message from client' wait
134:
135:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
136:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
137:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
138:waiting for 'SQL*Net message from client' wait
139:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
140:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
141:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
142:waiting for 'SQL*Net message from client' wait
143:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
144:
145:
146:
147:
148:
149:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
150:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
151:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
152:
153:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
154:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
155:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
156:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
157:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
158:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
159:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
160:waiting for 'SQL*Net message from client' wait
161:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
162:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
163:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
164:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
165:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
166:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
167:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
168:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
169:waiting for 'buffer busy waits' (6,6bd86,8) wait
Cmd: Insert
170:waiting for 'buffer busy waits' (6,6bd85,8) wait
Cmd: Insert
171:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Select
172:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
173:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
174:waiting for 'buffer busy waits' (6,6bd85,8) wait
Cmd: Insert
175:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
176:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Select
177:waiting for 'enq: FB - contention' [Enqueue FB-00000006-0186BDC8] wait
Cmd: Insert
178:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Select
179:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
180:waiting for 'buffer busy waits' (6,6bd85,8) wait
Cmd: Insert
181:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
182:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
183:waiting for 'buffer busy waits' (6,6bd86,8) wait
Cmd: Insert
184:waiting for 'buffer busy waits' (6,6bd85,8) wait
Cmd: Insert
185:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
186:waiting for 'buffer busy waits' (6,6bd85,8) wait
Cmd: Insert
187:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
188:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
189:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
190:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
191:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
192:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
193:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
194:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
195:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
196:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
197:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
198:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
199:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
200:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Delete
201:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
202:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
203:waiting for 'library cache lock' [LOCK: handle=c000000f388db3d0] wait
Cmd: Truncate Table
204:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Truncate Table
205:waiting for 'library cache lock' [LOCK: handle=c000000f388db3d0] wait
Cmd: Truncate Table
206:waiting for 'library cache lock' [LOCK: handle=c000000f388db3d0] wait
Cmd: Truncate Table
207:waiting for 'library cache lock' [LOCK: handle=c000000f388db3d0] wait
Cmd: Truncate Table
208:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
209:waiting for 'SQL*Net message from client' wait
210:waiting for 'SQL*Net message from client' wait
211:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
212:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
213:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
214:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
215:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Insert
216:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
217:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
218:last wait for 'ksdxexeotherwait' [Rcache object=c000000f9fdf8160,]
219:waiting for 'enq: US - contention' [Enqueue US-0000004C-00000000] wait
Cmd: Update
220:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
221:waiting for 'cursor: pin S wait on X' wait
Cmd: Select
222:waiting for 'cursor: pin S wait on X' wait
Cmd: Select
223:waiting for 'cursor: pin S wait on X' wait
Cmd: Select
224:waiting for 'cursor: pin S wait on X' wait
Cmd: Select
225:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
226:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
227:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
228:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
229:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Select
230:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
231:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
232:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
233:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
234:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Update
235:waiting for 'buffer busy waits' (31,85f86,8) wait
Cmd: Insert
236:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
237:waiting for 'buffer busy waits' (31,85f86,8) wait
Cmd: Insert
238:waiting for 'buffer busy waits' (31,85f85,8) wait
Cmd: Insert
239:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
240:
241:waiting for 'buffer busy waits' (31,85f86,8) wait
Cmd: Insert
242:
243:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
244:waiting for 'buffer busy waits' (31,85f85,8) wait
Cmd: Insert
245:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
246:waiting for 'log file switch (checkpoint incomplete)' wait
Cmd: Insert
247:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
248:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
249:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
250:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
251:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
252:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
253:waiting for 'buffer busy waits' (41,8fb85,8) wait
Cmd: Insert
254:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
255:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
256:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
257:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
258:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
259:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
260:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
261:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
262:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
263:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
264:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
265:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
266:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
267:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
268:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
269:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
270:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
271:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
272:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
273:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
274:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
275:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
276:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
277:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
278:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
279:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
280:waiting for 'row cache lock' [Rcache object=c000000f9fdf8160,] wait
281:last wait for 'log file switch (checkpoint incomplete)'[Rcache object=c000000f9fdf8160,] 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 PR-00000000-00000000 41: last wait for 'os thread startup'
Latch c0000000c2df3b70 ??? Blocker
Rcache object=c000000f9fdf8160, 61: waiting for 'log file switch (checkpoint incomplete)'
Enqueue US-0000004C-00000000 185: waiting for 'log file switch (checkpoint incomplete)'
Enqueue FB-00000006-0186BDC8 187: waiting for 'log file switch (checkpoint incomplete)'
LOCK: handle=c000000f388db3d0 204: waiting for 'log file switch (checkpoint incomplete)'

Object Names
~~~~~~~~~~~~
Enqueue PR-00000000-00000000
Latch c0000000c2df3b70 holding (efd=5) c0000000c2df3b70 slave cl
Rcache object=c000000f9fdf8160,
Enqueue US-0000004C-00000000
Enqueue FB-00000006-0186BDC8
LOCK: handle=c000000f388db3d0 TABL:REPORT.STATQ_AGENT_SUBS_NEW


1382711 Lines Processed.



历史上的今天...
    >> 2012-11-19文章:
    >> 2007-11-19文章:
           DBA警世录:where条件很重要
           儿子百天了
    >> 2006-11-19文章:
           知音如不赏 归卧故山秋
    >> 2005-11-19文章:
    >> 2004-11-19文章:
           Man Page Of gethrtime
           龙枪编年史

By eygle on 2009-11-19 08:20 | Comments (15) | Internal | 2458 |

15 Comments

老盖,awk -f 这个是哪里来的?

这个systemstate分析出来的结果真够眼熟的,哈哈

不错的工具,收藏一下。
楼上的,awk是linux下的一个命令行工具。

把awk用到这程序也算是出神入化了!

不会吧!awk也能干这个!
太有用啦,多谢多谢!

不会吧!awk也能干这个!
太有用啦,多谢多谢!

太牛了,玩一下先

oracle内部的分析工具居然也出来了,呵呵

请问为什么我使用这个工具的时候没有结果呢?
awk -f ass109.awk + tracefile

好使!!
再也不用,呆呆的望着一大堆似懂非懂的代码了。

在linux 下执行
awk -f ass109.awk + tracefile

Ass.Awk Version 1.0.9 - Processing orcl10g1_ora_4065.trc


11589 Lines Processed.

在没有结果 ,请详细说明一下如何使用,需要装什么东西? 谢谢!


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com