本文参考图书 > Oracle DBA实战攻略:运维管理、诊断优化、高可用与最佳实践
下面主要介绍设置事件10257跟踪PMON进程的方法,跟踪步骤如下所示:
(1)在数据库服务器上取得PMON进程号,如下所示:
[oracle@rhel6 admin]$ ps -ef|grep ora_pmon_orcl|grep -v grep|awk '{print $2}'
3868
(2)关闭监听
[grid@rhel6 admin]$ srvctl stop listener
(3)在sqlplus中使用oradebug命令跟踪pmon进程并获取跟踪文件
SQL> oradebug setospid 3868
Oracle pid: 2, Unix process pid: 3868, image: oracle@rhel6 (PMON)
SQL> oradebug event 10257 trace name context forever,level 16;
Statement processed.
SQL> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_pmon_3868.trc
(4)开启监听,等待PMON进程动态注册监听并获得跟踪文件
[grid@rhel6 admin]$ srvctl start listener
(5)从orcl_pmon_3868.trc跟踪文件中可以看到PMON进程的注册过程
err=-300 lbflgs=0x0 tbtime=0 tntime=0 etime=300 srvs=1 nreqs=0 sreqs=0 asrvs=1
error=-300 etime=300 control=0 integral=0 lasterr=-300 lastetm=300
kmmlrl: status: succ=0, wait=0, fail=1
kmmlrl: update for session drop delta: 9486 9485 3 1 247
kmmgdnu: orclXDB
goodness=0, delta=1,
flags=0x5:unblocked/not overloaded, update=0x6:G/D/-
kmmgdnu: orcl
goodness=0, delta=1,
flags=0x4:unblocked/not overloaded, update=0x6:G/D/-
kmmlrl: 35 processes
kmmlrl: node load 10
kmmlrl: instance load 3
kmmlrl: nsgr update returned 0
(6)注销跟踪
SQL> oradebug event 10257 trace name context off
Statement processed.
oradebug其他用法参考一下链接
http://blog.csdn.net/edwzhang/article/details/7675515