oradebug已经很强大,有时也无法用,就需要考虑更底层工具,例如dbx或者叫gdb
如果安装好了gdb,那么直接执行效果:
(gdb) ## 这是提示符,类似SQL> 的意思
如果没有的话,安装gdb
# yum -y install gdb
打开gdb的简洁方式
gdb -q ## Do not print version number on startup 安静模式
看着哪个进程一直cpu繁忙或异常,可以
Linux:
通过top命令看到繁忙的进程pid
然后
$ gdb $ORACLE_HOME/bin/oracle PID
print ksudss(258)
然后去trace目录下找PID对应trc文件
aix:
topas 看到繁忙的进程pid
可以调用的函数:
print ksdhng(3,1,0) 相当于oradebug hanganalyze 3
print ksudps(10) 相当于oradebug dump processstate 10
print curdmp() 相当于oradebug call curdmp(也就是oradebug dump cursordump)
print ksdtrc(4) 相当于oradebug dump events 4(这里参数表示level,1–session,2–process,4–system)
print ksdsel(10046,12) –相当于为attach的进程设置10046事件level 12
print skdxipc() –相当于oradebug ipc
print skdxprst() –相当于oradebug procstat
先简单记录,下次试用。
参考:
-
https://www.ibm.com/support/pages/debugger-commands-aix-dbx-solaris-dbx-linux-gdb
-
-
https://blog.csdn.net/awm_kar98/article/details/82840811
-
-
https://blog.csdn.net/u010692693/article/details/45502763
阅读(17285) | 评论(0) | 转发(0) |