.trc ora9i@cs_dc02:/ora9i/app/oracle/admin/csmisc/udump > exit
SQL>
我们看到SID为30的会话,产生的跟踪文件(csmisc2_ora_22580.trc)为的主要内容是: /ora9i/app/oracle/admin/csmisc/udump/csmisc2_ora_22580.trc Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production With the Partitioning and Real Application Clusters options JServer Release 9.2.0.4.0 - Production ORACLE_HOME = /ora9i/app/oracle/product/920 System name: HP-UX Node name: cs_dc02 Release: B.11.11 Version: U Machine: 9000/800 Instance name: csmisc2 Redo thread mounted by this instance: 2 Oracle process number: 28 Unix process pid: 22580, image: oracle@cs_dc02 (TNS V1-V3)
*** 2005-01-10 11:31:49.416 *** SESSION ID:(30.24167) 2005-01-10 11:31:49.354 WAIT #0: nam='library cache lock' ela= 507258 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 505686 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507678 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507595 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507880 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507317 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507703 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507683 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 508265 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507100 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507684 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 505889 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507731 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507650 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507604 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301 WAIT #0: nam='library cache lock' ela= 507698 p1=-4611686013547141416 p2=-4611686013691716064 p3=1301
。。。 。。。
我们看到SID 30的跟踪文件中的等待事件就是在V$SESSION_WAIT中看到的'library cache lock' .
再看看SID为37的会话,产生的跟踪文件(csmisc2_ora_20552.trc)为的主要内容是: Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production With the Partitioning and Real Application Clusters options JServer Release 9.2.0.4.0 - Production ORACLE_HOME = /ora9i/app/oracle/product/920 System name: HP-UX Node name: cs_dc02 Release: B.11.11 Version: U Machine: 9000/800 Instance name: csmisc2 Redo thread mounted by this instance: 2 Oracle process number: 26 Unix process pid: 20552, image: oracle@cs_dc02 (TNS V1-V3)
*** 2005-01-10 11:33:22.702 *** SESSION ID:(37.2707) 2005-01-10 11:33:22.690 WAIT #1: nam='SQL*Net message to dblink' ela= 4 p1=675562835 p2=1 p3=0 *** 2005-01-10 11:35:07.452 WAIT #1: nam='SQL*Net message from dblink' ela= 102293555 p1=675562835 p2=1 p3=0 WAIT #1: nam='SQL*Net message to dblink' ela= 3 p1=675562835 p2=1 p3=0 *** 2005-01-10 11:36:55.980 WAIT #1: nam='SQL*Net message from dblink' ela= 105969709 p1=675562835 p2=1 p3=0 WAIT #1: nam='SQL*Net message to dblink' ela= 4 p1=675562835 p2=1 p3=0 *** 2005-01-10 11:39:05.416 WAIT #1: nam='SQL*Net message from dblink' ela= 126390826 p1=675562835 p2=1 p3=0 WAIT #1: nam='SQL*Net message to dblink' ela= 4 p1=675562835 p2=1 p3=0 *** 2005-01-10 11:41:12.878 WAIT #1: nam='SQL*Net message from dblink' ela= 124461520 p1=675562835 p2=1 p3=0 WAIT #1: nam='SQL*Net message to dblink' ela= 4 p1=675562835 p2=1 p3=0 *** 2005-01-10 11:43:01.285 WAIT #1: nam='SQL*Net message from dblink' ela= 105859385 p1=675562835 p2=1 p3=0 WAIT #1: nam='SQL*Net message to dblink' ela= 4 p1=675562835 p2=1 p3=0 *** 2005-01-10 11:44:48.200 WAIT #1: nam='SQL*Net message from dblink' ela= 104397696 p1=675562835 p2=1 p3=0 WAIT #1: nam='SQL*Net message to dblink' ela= 4 p1=675562835 p2=1 p3=0
。。。 。。。
现在我们来dump 系统状态(systemstate),看看更详细的信息。
首先简单的介绍一下 event systemstate。 很多人把 systemstate 事件理解为dump发生的那一刻的系统内所有进程的信息,这是个错误的概念,事实上, 转储 system state 产生的跟踪文件是从dump那一刻开始到dump任务完成之间一段事件内的系统内所有进程的信息。
dump systemstate产生的跟踪文件包含了系统中所有进程的进程状态等信息。每个进程对应跟踪文件中的一段内容,反映该进程的状态信息,包括进程信息,会话信息,enqueues信息(主要是lock的信息),缓冲区的信息和该进程在SGA区中持有的(held)对象的状态等信息。
那么通常在什么情况下使用systemstate比较合适呢? Oracle推荐的使用systemstate事件的几种情况是:
- 数据库 hang 住了
- 数据库很慢
- 进程正在hang
- 数据库出现某些错误
- 资源争用
dump systemstate的语法为: ALTER SESSION SET EVENTS 'immediate trace name systemstate level 10';
也可以使用ORADEBUG实现这个功能 ORADEBUG DUMP SYSTEMSTATE level 10
如果希望在数据库发生某种错误时除非systemstate事件,可以在参数文件(spfile或者pfile)中设置event参数, 例如,当系统发生死锁(出现ORA-00060错误)时dump systemstate: event = "60 trace name systemstate level 10"
言归正传,我们dump系统状态: SQL> ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 8';
Session altered.
SQL> host ora9i@cs_dc02:/ora9i >cd /ora9i/app/oracle/admin/csmisc/udump ora9i@cs_dc02:/ora9i/app/oracle/admin/csmisc/udump > ll -ctl -rw-r----- 1 ora9i dba 1070863 Jan 10 13:02 csmisc2_ora_22580.trc -rw-r----- 1 ora9i dba 1345368 Jan 10 13:01 csmisc2_ora_22568.trc -rwxrwxrwx 1 ora9i dba 44114 Jan 10 12:52 ass1015.awk -rw-r----- 1 ora9i dba 407133 Jan 7 15:10 csmisc2_ora_2708.trc -rw-r----- 1 ora9i dba 640 Jan 7 14:48 csmisc2_ora_835.trc -rw-r----- 1 ora9i dba 1590 Dec 30 22:50 csmisc2_ora_16244.trc -rw-r----- 1 ora9i dba 1308403 Dec 30 22:44 csmisc2_ora_16033.trc -rw-r----- 1 ora9i dba 616 Dec 28 14:16 csmisc2_ora_2176.trc -rw-r----- 1 ora9i dba 644 Dec 8 18:22 csmisc2_ora_21083.trc ora9i@cs_dc02:/ora9i/app/oracle/admin/csmisc/udump > ora9i@cs_dc02:/ora9i/app/oracle/admin/csmisc/udump > mailx -s "22568" zhangdp@aspire-tech.com < csmisc2_ora_22568.trc
这个跟踪文件很大(因为它包含了所有进程的信息),那么我们从哪里开始看起呢?
首先,通过在跟踪文件中查找字符串"waiting for 'library cache lock'",我们找到了被阻塞进程的信息:
PROCESS 28: ----------------被阻塞的Oracle进程,这里PROCESS 28对应了V$PROCESS中的PID的值, 也就是说我们可以根据这一信息在V$PROCESS和V$SESSION找到被阻塞的会话的信息 ---------------------------------------- SO: c000000109c83bf0, type: 2, owner: 0000000000000000, flag: INIT/-/-/0x00 (process) Oracle pid=28, calls cur/top: c00000010b277890/c00000010b277890, flag: (0) - int error: 0, call error: 0, sess error: 0, txn error 0 (post info) last post received: 17 24 6 last post received-location: ksusig last process to post me: c000000109c840f8 25 0 last post sent: 0 0 15 last post sent-location: ksasnd last process posted by me: c000000109c7ff90 1 6 (latch info) wait_event=0 bits=0 Process Group: DEFAULT, pseudo proc: c000000109eefda0 O/S info: user: ora9i, term: pts/th, 上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
|