知识大全 用调试工具DumpOracle系统状态

Posted 状态

篇首语:大道之行,天下为公。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用调试工具DumpOracle系统状态相关的知识,希望对你有一定的参考价值。

用调试工具DumpOracle系统状态  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  如果Oracle数据库hang了 对Oracle进行system dump或hang analyze 是研究和解决问题的有效方法 如果能够连接数据库 并进行操作 则使用oradebug是最简单快捷的办法

  但有的时候 数据库由于hang住 sqlplus不能连接时(在 g可以尝试用sqlplus prelim连接数据库) 可以使用操作系统上的调试工具来dump oracle系统状态 因为我的环境是linux 所以我先从gdb来介绍

  ①首先获得要dump的进程号

  ps ef | grep LOCAL

  oracle           : ?        : : oracleretest (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

  oracle        : pts/     : : grep LOCAL

  ②调用gdb进行dump

  gdb $ORACLE_HOME/bin/oracle

  GNU gdb Red Hat Linux ( post rh)

  Copyright Free Sofare Foundation Inc

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

  wele 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 i redhat linux gnu …(no debugging symbols found)…Using host libthread_db library /lib/tls/libthread_db so ″

  Attaching to program: /u /app/oracle/product/ /db_ /bin/oracle process

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libskgxp so…(no debugging symbols found)…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libskgxp so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libhasgen so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libhasgen so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libskgxn so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libskgxn so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libocr so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libocr so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libocrb so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libocrb so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libocrutl so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libocrutl so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libjox so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libjox so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libclsra so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libclsra so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libdbcfg so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libdbcfg so

  Reading symbols from /u /app/oracle/product/ /db_ /lib/libnnz so…done

  Loaded symbols for /u /app/oracle/product/ /db_ /lib/libnnz so

  Reading symbols from /usr/lib/libaio so …done

  Loaded symbols for /usr/lib/libaio so

  Reading symbols from /lib/libdl so …done

  Loaded symbols for /lib/libdl so

  Reading symbols from /lib/tls/libm so …done

  Loaded symbols for /lib/tls/libm so

  Reading symbols from /lib/tls/libpthread so …done

  [Thread debugging using libthread_db enabled]

  [New Thread (LWP )]

  Loaded symbols for /lib/tls/libpthread so

  Reading symbols from /lib/libnsl so …done

  Loaded symbols for /lib/libnsl so

  Reading symbols from /lib/tls/libc so …done

  Loaded symbols for /lib/tls/libc so

  Reading symbols from /lib/ld linux so …done

  Loaded symbols for /lib/ld linux so

  Reading symbols from /lib/libnss_files so …done

  Loaded symbols for /lib/libnss_files so

   × a in _dl_sysinfo_int () from /lib/ld linux so

  (gdb) print ksudss( )

  [Switching to Thread (LWP )]

  $ =

  (gdb) detach

  Detaching from program: /u /app/oracle/product/ /db_ /bin/oracle process

  (gdb) quit

  ③随后即可找到有dump结果的trace文件

  ls lrt | grep

   rw r—– oracle oinstall    Feb : retest_ora_ trc

  此时 可以用ass awk工具对trace文件进行简单的分析 具体的ass awk文件

  awk f ass awk retest_ora_ trc

  就可以获得简单的等待信息

  在LINUX下用gdb 在AIX下用dbx

  # dbx a

  Waiting to attach to process …

  Successfully attached to oracle

  Type help for help

  reading symbolic information …

  stopped in iosl select at × c d ($t )

   × c d (select+ xfffffffffff ) e ld r × (r )

  (dbx) print ksudss( )

  Segmentation fault in slrac at × aa ($t )

   × aa (slrac+ xe ) lbz r × (r )

  (dbx) detach

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

  除了通过print ksudss( )进行systemstate dump 还可以进行下面的dump

  print ksdhng( ) 相当于oradebug hanganalyze

  print ksudps( ) 相当于oradebug dump processstate

  print curdmp() 相当于oradebug call curdmp(也就是oradebug dump cursordump)

  print ksdtrc( ) 相当于oradebug dump events (这里参数表示level –session –process –system)

  print ksdsel( ) –相当于为attach的进程设置 事件level

  print skdxipc() –相当于oradebug ipc

  print skdxprst() –相当于oradebug procstat

cha138/Article/program/Oracle/201311/17728

相关参考

知识大全 给你的线程命名,察看你的系统

  集成开发环境(IDE)能给图形界面应用程序提供一个很好的调试工具但是它却不能调试一个多线程的Java服务器程序        幸运的是有几种工具例如logging应用程序接口(API)或者Java

知识大全 .NET的死锁调试工具:ACorns.Debugging

.NET的死锁调试工具:ACorns.Debugging  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 .NET的死锁调试工具——ACorns.Debugging

.NET的死锁调试工具——ACorns.Debugging  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 命名你的线程和查看系统

  虽然集成开发环境(IDE)可以为图形化应用程序提供很好的调试设置但是它不允许你调试多线程的Java服务器程序        幸运的是有几个工具可以做到例如日志应用程序接口(API)和Java调试器

知识大全 Visual C++开发工具与调试技巧整理[1]

VisualC++开发工具与调试技巧整理[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如

知识大全 Visual C++开发工具与调试技巧整理[2]

VisualC++开发工具与调试技巧整理[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如

机械设备中机械和各系统联合调试要求有哪些?

  二锅头  一、设备及其润滑、液压、气(汽)动、冷却、加热和电气及控制等系统,均应单独调试检查并符合要求。  二、联合调试应按要求进行;不宜用模拟方法代替。  三、联合调试应由部件开始至组件、至单机

机械设备中机械和各系统联合调试要求有哪些?

  二锅头  一、设备及其润滑、液压、气(汽)动、冷却、加热和电气及控制等系统,均应单独调试检查并符合要求。  二、联合调试应按要求进行;不宜用模拟方法代替。  三、联合调试应由部件开始至组件、至单机

知识大全 怎样用U盘装系统之通用PE工具箱装Ghost版XP系统

怎样用U盘装系统之通用PE工具箱装Ghost版XP系统  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

执行机构调试时,下例选项描述正确的是()

执行机构调试时,下例选项描述正确的是()A、行程开关和力矩开关应调整正确B、执行机构的开度应与阀位表指示相对应C、有自锁保护的执行机构,无需逐项检查其自锁保护的功能D、调节系统在手动状态时,执行机构动