Oracle数据库局部性HANG处理过程
Oracle数据库局部性HANG,通常表现为部分会话HANG。观察会话是否为HANG,笔者比较喜欢查询V$SESSION_WAIT视图,然后观察该会话的P1、P2、P3值,如果该值在不停地改变,则说明会话没有HANG,而可能只是比较慢。
如果要进一步观察会话HANG或者慢的原因,则可以对该会话设置10046事件和errorstack来帮助诊断故障原因。如需要对9834号进程做跟踪,其语法如下所示:
connect / as sysdba
ALTER SESSION SET tracefile_identifier = ‘STACK_10046’;
oradebug setospid 9834
oradebug unlimit
oradebug event 10046 trace name context forever,level 12
oradebug dump errorstack 3
oradebug dump errorstack 3
oradebug dump errorstack 3
oradebug tracefile_name
oradebug event 10046 trace name context off