oracle的dump工具和分析trc文件工具ass.awk

之前介绍了oracle的一个hang住时的一个分析工具hanganalyze,这里再引入另外的一个工具,分析系统进程和单个进程的工具

1、在能登录数据库时,可以使用如下语句:

跟踪进程对象的debug的方法:

可以使用下面方法产生系统状态跟踪文件:

process state dumps ==>一个进程的所有对象状态,如果确认哪个进程有问题,就用该方法

process state dumps:

1.ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME PROCESSSTATE LEVEL 10'或者event = '604 trace name processstate,level 10'(INIT.ORA entry);

2.oradebug setospid进程ID

3.oradebug dump processstate 10;

实验:

Sid 300:UPDATEtxt_test aSETa.FLOWNO='b'WHEREa.FLOWNO='a';

Sid 244:UPDATEtxt_test aSETa.FLOWNO='b'WHEREa.FLOWNO='a';

这样,sid 300 update后不commit,那么,sid 244就会卡在那边,这时,我去debug sid 244那个进程id 17541

但是,当我使用ass.awk去跟踪文件的时候,却发现,没有内容出来:

----------------------------------------------------------------------------

[oracle@local ass]$ awk -f ass.awk$ORACLE_HOME/zxin/udump/zxin_ora_17541.trc

Ass.Awk Version 1.0.9 - Processing $ORACLE_HOME/zxin/udump/zxin_ora_17541.trc

2451 Lines Processed.

------------------------------------------------------------------------------

system state dumps ==>整个系统的所有进程中的所有对象状态

system state dumps:

1.ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 10'或者event = '604 trace name systemstate,level 10'(INIT.ORA entry)

2、当系统hang住后,如果连sqlplus也不能登录数据库,那么可以使用如下工具

在LINUX下用gdb,在AIX下用dbx,那么在HP-UX下呢,可以用HP的wdb(可以到HP WDB查看HP WDB的详细信息和下载最新的版本。在solaris上,也会有dbx或gdb(各个平台有多种不同的debugger,其他还有adb,mdb等等)。

这里继续上马的例子,当我在linux上使用sid 300的pid的时候,就可以使用ass.awk了

[oracle@localhost ass]$gdb $ORACLE_HOME/bin/oracle

GNU gdb 6.6

Copyright (C) 2006 Free Software Foundation, Inc.

GDB is free software, covered by the GNU General Public License, and you are

welcome to change it and/or distribute copies of it under certain conditions.

Type "show copying" to see the conditions.

There is absolutely no warranty for GDB.Type "show warranty" for details.

This GDB was configured as "--host=i686-pc-linux-gnu --target=i686-pc-linux"...

Using host libthread_db library "/lib/libthread_db.so.1".

Attaching to program: /home/oracle/oracle92/bin/oracle, process 22655

Readingsymbols from /etc/libcwait.so...done.

Loaded symbols for /etc/libcwait.so

Readingsymbols from /home/oracle/oracle92/lib/libodm9.so...done.

Loaded symbols for /home/oracle/oracle92/lib/libodm9.so

Readingsymbols from /home/oracle/oracle92/lib/libskgxp9.so...done.

Loaded symbols for /home/oracle/oracle92/lib/libskgxp9.so

Readingsymbols from /home/oracle/oracle92/lib/libskgxn9.so...done.

Loaded symbols for /home/oracle/oracle92/lib/libskgxn9.so

Readingsymbols from /home/oracle/oracle92/lib/libjox9.so...done.

Loaded symbols for /home/oracle/oracle92/lib/libjox9.so

Readingsymbols from /lib/libdl.so.2...done.

Loaded symbols for /lib/libdl.so.2

Readingsymbols from /lib/libm.so.6...done.

Loaded symbols for /lib/libm.so.6

Readingsymbols from /lib/libpthread.so.0...done.

Loaded symbols for /lib/libpthread.so.0

Readingsymbols from /lib/libnsl.so.1...done.

Loaded symbols for /lib/libnsl.so.1

Readingsymbols from /lib/libc.so.6...done.

Loaded symbols for /lib/libc.so.6

Readingsymbols from /lib/ld-linux.so.2...done.

Loaded symbols for /lib/ld-linux.so.2

Readingsymbols from /lib/libnss_files.so.2...done.

Loaded symbols for /lib/libnss_files.so.2

0xffffe410 in __kernel_vsyscall ()

(gdb)print ksudss(10)

$1 = 181834684

(gdb)detach

Detaching from program: /home/oracle/oracle92/bin/oracle, process 22655

(gdb)quit

这时,使用ass.awk来跟踪这个trc文件

[oracle@localhost ass]$ awk -f ass109.awk/home/oracle/zxindbf/admin/zxin/udump/zxin_ora_22655.trc

Starting Systemstate 1

..............................................................................

...............................................................................

...............................................................................

...........

Ass.Awk Version 1.0.9 - Processing /home/oracle/zxindbf/admin/zxin/udump/zxin_ora_22655.trc

SystemState1

~~~~~~~~~~~~~~~~

1:

2:waiting for 'pmon timer'seq=43334

3:waiting for 'rdbms ipc message'seq=20506

4:waiting for 'rdbms ipc message'seq=56103

5:waiting for 'rdbms ipc message'seq=51900

6:waiting for 'rdbms ipc message'seq=37622

7:waiting for 'rdbms ipc message'seq=37381

8:waiting for 'rdbms ipc message'seq=26290

9:waiting for 'rdbms ipc message'seq=26699

10: waiting for 'rdbms ipc message'seq=6453

11: waiting for 'rdbms ipc message'seq=17840

12: waiting for 'rdbms ipc message'seq=43737

13: waiting for 'smon timer'seq=10561

14: waiting for 'rdbms ipc message'seq=726

15: waiting for 'rdbms ipc message'seq=55882

16: waiting for 'wakeup time manager'seq=15573

17: waiting for 'SQL*Net message from client' seq=272

18: waiting for 'jobq slave wait'seq=2

19: waiting for 'jobq slave wait'seq=2

20: waiting for 'jobq slave wait'seq=2

21: waiting for 'SQL*Net message from client' seq=282

22: waiting for 'SQL*Net message from client' seq=2456

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

225:waiting for 'enqueue'[Enqueue TX-00020016-000FA083] seq=49

Cmd: Update

226:waiting for 'SQL*Net message from client' seq=117

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 TX-00020016-000FA083224: waiting for 'SQL*Net message from client'

Object Names

~~~~~~~~~~~~

Enqueue TX-00020016-000FA083

137909 Lines Processed.

这里,可以很清楚地看到,这个进程,是由于什么原因卡在那边。

3、ass.awk的用法

先上传下ass.awk的shell脚本

用的时候,在当前目录下生成那个shell脚本(ass.awk),然后,使用如下命令,就会生成了

(n)awk -f ass.awk$ORACLE_BASE/zxin/udump/zxin_ora_22655.trc

参考网址:

看懂oracle trc文件,oracle 的 debug 工具 和 分析 trc 文件工具 ass.awk相关推荐

  1. 带你看懂基于Citespace的文献计量学及可视化分析

    带你看懂基于Citespace的文献计量学及可视化分析 ​ 编辑切换为居中 添加图片注释,不超过 140 字(可选) 你知道文献计量学分析吗? 听过,据说可以用citespace等特殊软件完成,做出很 ...

  2. 明尼苏达量表结果分析_如何看懂「明尼苏达多相个性调查表」的结果分析报告 ?...

    感谢邀请.因你的问题涉及以下几个问题,我分别论述: 第一,这两个测验(MMPI-1和SCL-90)的信度和效度问题. 从你给的信息判断,你先生的MMPI测试结果是MMPI-1版本,这个版本在大陆医院使 ...

  3. oracle张大鹏,Oracle数据库性能优化

    目录 第一篇 优化工具篇 第 1 章 DBA 优化之路 1.1 学习的建议 1.2 工具推荐 1.3 关于操作系统方面的建议 1.4 关于Oracle初始化参数的调整 1.5 关于Statspack的 ...

  4. 一文看懂LR寄存器及 BX LR 指令的两种用途

    一文看懂LR寄存器 不知你在DEBUG程序,又或者阅读操作系统源码时候有没细心观察,从一个普通子函数返回与异常(中断)返回的汇编指令都是BX  LR,但是这两者的意义是一样的吗?这篇文章就来揭开LR寄 ...

  5. 如何看懂设计师给到的设计图?

    在我的第一段实习经历中,由于业务需求特性我做得最多的工作就是,根据UI设计师的设计图还原编码.这项工作的难点不在于编码难度,而在于看懂设计图本身.元素位置.元素色相.资源文件,都需要花费很大地精力和设 ...

  6. 鸟哥的Linux私房菜(基础篇)- 第十九章、认识与分析登录文件

    第十九章.认识与分析登录文件 最近升级日期:2009/09/14 当你的 Linux 系统出现不明原因的问题时,很多人都告诉你,你要查阅一下登录文件才能够知道系统出了什么问题了,所以说,了解登录文件是 ...

  7. 【Android 性能优化】应用启动优化 ( Trace 文件分析 | 结合代码分析 Trace 文件 )

    文章目录 一. Trace 文件查看 二. 结合代码分析 Trace 文件 一. Trace 文件查看 上一篇博客 [Android 性能优化]应用启动优化 ( 方法追踪代码模板 | 示例项目 | S ...

  8. Note For Linux By Jes(13)-认识与分析日志文件

    什么是登录文件: Linux 常见的登录文件档名 /var/log/dmesg: 记录系统在启动的时候核心侦测过程所产生的各项资讯.由於CentOS 默认将启动时核心的硬件侦测过程取消显示,因此额外将 ...

  9. 数据压缩作业二——分析tga文件

    数据压缩作业二--分析tga文件 文章目录 数据压缩作业二--分析tga文件 一.TGA格式文件概述 二.使用二进制编辑软件分析tga文件 1.TGA文件头(TGA FILE HEADER) 2. 图 ...

最新文章

  1. STM32 串行通信原理
  2. 20周年献礼:Visual Studio 2017正式版3月7日发布
  3. AI岗位秋招纪实:算法原理扎实才是王道,而不是调参
  4. 爬虫小工具合集|不会编程也能爬数据
  5. Android app应用多语言切换功能实现
  6. 重磅︱R+NLP:text2vec包——New 文本分析生态系统 No.1(一,简介)
  7. Guava学习笔记(二):Optional优雅的使用null
  8. 特征选择算法(机器学习)
  9. Log4j有哪几种日志级别呢?
  10. 【javase基础】第六篇:方法的重载与递归
  11. PAT 7-14 电话聊天狂人
  12. 制作咖啡店的banner
  13. 用 Androidx + 蓝牙HC05 点灯(2): Handler 掌舵人 和 Thread 线人,逮着蓝牙老大说黑话:此灯为我开,101011...
  14. 软件工程的10个知识领域
  15. 通达OA使用手册(一)
  16. 第五章第三题(将千克转换成磅)(Conversion from kilogram to pound)
  17. 赠与今年的大学毕业生,胡适
  18. how2j:JAVA学习笔记——DAY 9
  19. linux下ant编译android,linux(以ubuntu為例)下Android利用ant自動編譯、修改配置文件、批量多渠道,打包生成apk文件...
  20. Kubernetes 部署策略

热门文章

  1. python爬取汽车之家数据_python 实现汽车之家车型数据爬虫
  2. html在线地图,Html显示地图
  3. 量子计算(1)量子力学基本理论(上)
  4. 几个简单又实用的配色技巧
  5. 动态贴纸是通过什么技术实现的?为什么能火爆至今?
  6. 【设计】电流偏置设计
  7. 西电 操作系统课设 在Ubuntu18.04安装pintos
  8. 有时候qq邮箱不显示图片
  9. 中国剩余定理的算法实现(基于c语言miracl库)
  10. php怎么给文章加页码,PPT如何插入页码