11g中hanganalyze的格式
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,从11g开始,Oracle的trace格式相比10g,有很大的改变。hanganalyze trace格式也不例外。做个小测试,认识一下。在session1中:SYS@tst SQL>select *
千家信息网最后更新 2025年02月03日11g中hanganalyze的格式
从11g开始,Oracle的trace格式相比10g,有很大的改变。hanganalyze trace格式也不例外。
做个小测试,认识一下。
在session1中:
SYS@tst SQL>select * from v$mystat where rownum<2; SID STATISTIC# VALUE---------- ---------- ---------- 355 0 0SYS@tst SQL>update scott.syk set loc='BJ' where deptno=10;1 row updated.
在session2中:
SYS@tst SQL>select * from v$mystat where rownum<2; SID STATISTIC# VALUE---------- ---------- ---------- 246 0 0SYS@tst SQL>update scott.syk set loc='BJ' where deptno=10;
然后在session3中,做hanganalyze
SYS@tst SQL>oradebug setmypidStatement processed.SYS@tst SQL>oradebug hanganalyze 3Hang Analysis in /apps/oracle/diag/rdbms/tst/tst/trace/tst_ora_20554.trcSYS@tst SQL>oradebug hanganalyze 3Hang Analysis in /apps/oracle/diag/rdbms/tst/tst/trace/tst_ora_20554.trcSYS@tst SQL>exit
然后查看tst_ora_20554.trc
Chain 1:------------------------------------------------------------------------------- Oracle session identified by: { instance: 1 (xbtst.xbtst) os id: 20433 process id: 30, oracle@tstdb-25-220 (TNS V1-V3) session id: 246 session serial #: 7817 } is waiting for 'enq: TX - row lock contention' with wait info: { p1: 'name|mode'=0x54580006 p2: 'usn<<16 | slot'=0x1001b p3: 'sequence'=0x3ba time in wait: 42.648677 sec timeout after: never wait id: 13 blocking: 0 sessions current sql: update scott.syk set loc='BJ' where deptno=10 short stack: ksedsts()+465<-ksdxfstk()+32<-ksdxcb()+1927<-sspuser()+112<-__sighandler()<-semtimedop()+10<-skgpwwait()+178<-ksliwat()+2022<-kslwaitctx()+163<-ksqcmi()+2848<-ksqgtlctx()+3501<-ksqgelctx()+557<-ktuGetTxForXid()+131<-ktcwit1()+336<-kdddgb()+8587<-kdusru()+460<-updrowFastPath()+1193<-qerupFetch()+2415<-updaul()+1378<-updThreePhaseExe()+318<-updexe()+638<-opiexe()+10378<-kpoal8()+2380<-opiodr()+917<-ttcpip()+2183<-opitsk()+1710<-opiino()+969<-opiodr()+917<-opidrv()+570<-sou2o()+103<-opimai_real()+133<-ssthrdmain()+26 wait history: * time between current wait and wait #1: 0.000855 sec 1. event: 'SQL*Net message from client' time waited: 30.441778 sec wait id: 12 p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 * time between wait #1 and #2: 0.000059 sec 2. event: 'SQL*Net message to client' time waited: 0.000001 sec wait id: 11 p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 * time between wait #2 and #3: 0.000045 sec 3. event: 'SQL*Net message from client' time waited: 0.000465 sec wait id: 10 p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 } and is blocked by => Oracle session identified by: { instance: 1 (xbtst.xbtst) os id: 20329 process id: 27, oracle@tstdb-25-220 (TNS V1-V3) session id: 355 session serial #: 2535 } which is waiting for 'SQL*Net message from client' with wait info: { p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 time in wait: 51.621284 sec timeout after: never wait id: 24 blocking: 1 session current sql:short stack: ksedsts()+465<-ksdxfstk()+32<-ksdxcb()+1927<-sspuser()+112<-__sighandler()<-read()+14<-ntpfprd()+117<-nsbasic_brc()+376<-nsbrecv()+69<-nioqrc()+495<-opikndf2()+978<-opitsk()+831<-opiino()+969<-opiodr()+917<-opidrv()+570<-sou2o()+103<-opimai_real()+133<-ssthrdmain()+265<-main()+201<-__libc_start_main()+245 wait history: * time between current wait and wait #1: 0.000007 sec 1. event: 'SQL*Net message to client' time waited: 0.000002 sec wait id: 23 p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 * time between wait #1 and #2: 0.004410 sec 2. event: 'SQL*Net message from client' time waited: 29.579867 sec wait id: 22 p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 * time between wait #2 and #3: 0.000003 sec 3. event: 'SQL*Net message to client' time waited: 0.000000 sec wait id: 21 p1: 'driver id'=0x62657100 p2: '#bytes'=0x1 } Chain 1 Signature: 'SQL*Net message from client'<='enq: TX - row lock contention'Chain 1 Signature Hash: 0x38c48850------------------------------------------------------------------------------- ===============================================================================Extra information that will be dumped at higher levels:[level 4] : 1 node dumps -- [LEAF] [LEAF_NW] [level 5] : 1 node dumps -- [NO_WAIT] [INVOL_WT] [SINGLE_NODE] [NLEAF] [SINGLE_NODE_NW] State of ALL nodes([nodenum]/cnode/sid/sess_srno/session/ospid/state/[adjlist]):[245]/1/246/7817/0xf2d616a8/20433/NLEAF/[354][354]/1/355/2535/0xf2ee55c8/20329/LEAF/*** 2016-10-11 13:28:25.479===============================================================================END OF HANG ANALYSIS
解决几个点:
[adjlist]:这个可以看做是[nodenum]
NLEAF:这个是waiter
LEAF:这个是blocker
nodenum[245]被adjlist[354]阻塞,nodenum[354]没有阻塞者。
[354]这一行中,sid为355,state为LEAF,所以355是blocker,对应上面的session1中执行的语句。
[245]这一行中,sid为246,state为NLEAF,所以246是waiter,对应上面的session2中执行的语句。
因此在分析hanganalyze时,可以通过LEAF来初步定位blocker,然后再通过NLEAF、[adjlist]来确定。
格式
一行
语句
面的
阻塞
很大
可以通过
分析
定位
测试
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全知识宣传海报分析
五际网络技术有限公司怎么样
数据库视图如何加字段
软件开发防秘
局域网中的服务器防护
材料基因数据库与机器学习的区别
在数据库中怎么建立表
谷歌商店手游服务器错误
小孩网络安全教育
tp5数据库写入
启东泰畅网络技术有限公司
大疆软件开发外包
tcp数据中转服务器搭建
商洛软件开发
电脑服务器满载
牡丹江招聘pb软件开发
阿帕奇服务器 下载
工作总结软件开发
数据库报表中怎么计算年龄
安徽正规网络技术开发不二之选
时序数据库和nosql
java应用软件开发培训
聊天软件开发电话
广东禾中互联网科技公司
硚口软件开发与定制
每一个数据库有多少个文件
关闭服务器管理员密码
互联网科技股板块
驰骋互联网科技有限公司
王者荣耀带金字的服务器有多少