首页 > 数据库 > Oracle > RAC 一节点查询ASM视图夯分析处理
环境: Release 11.2.0.4.0 Production
故障描述:RAC环境2个节点,节点2查询asm视图正常返回结果,节点1查询asm视图就会一直hang.
以下是分析和处理过程
su - grid
$ sqlplus / as sysasm
set linesize 200
col event for a40
col machine for a30
col program for a30
SELECT inst_id,sid,serial#,event,username,sql_id,machine,program,blocking_session from gv$session where wait_class<>'Idle';
INST_ID SID SERIAL# EVENT USERNAME SQL_ID MACHINE PROGRAM BLOCKING_SESSION BLOCKING_INSTANCE
---------- ------- ---------- ----------------------- ----------- ------------- ------------- ------------------------------ ---------------- -----------------
1 1 229 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 126 217 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 188 217 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 250 213 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 312 225 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 374 211 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 436 213 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 498 217 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 560 215 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 622 215 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 684 215 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 746 215 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 808 217 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 870 217 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 932 213 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 994 211 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1056 207 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1118 221 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1180 209 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1243 217 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1304 215 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1366 369 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
1 1428 319 enq: DD - contention SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1800 1
查看等待事件为"enq: DD - contention"的都是被1800会话阻塞,1800会话的event是rdbms ipc reply空闲等待
SQL> SELECT inst_id,sid,serial#,event,username,sql_id,machine,program,blocking_session from gv$session where sid=2730;
INST_ID SID SERIAL# EVENT USERNAME SQL_ID MACHINE PROGRAM BLOCKING_SESSION BLOCKING_INSTANCE
---------- ---------- ---------- ---------------------- ------------ ------------- ----------- ------------------------------ ---------------- -----------------
1 1800 265 rdbms ipc reply SYS fxdyd5rygqhry dcpddb01 sqlplus@dcpddb01 (TNS V1-V3) 1356 1
1800会话又是被1367会话阻塞,1356会话的event是GPnP Get Item
SQL> SELECT inst_id,sid,serial#,event,username,sql_id,machine,program,blocking_session from gv$session where sid=1356;
INST_ID SID SERIAL# EVENT USERNAME SQL_ID MACHINE PROGRAM BLOCKING_SESSION BLOCKING_INSTANCE
---------- ---------- ---------- ---------------------- ------------ ------------- ----------- ------------------------------ ---------------- -----------------
1 1356 145 GPnP Get Item SYS dcpddb01 oracle@newdb2 (RBAL) 1356 1
最终的被1356会话在等待:GPnP Get Item .
查询MOS就可以匹配到 - Diskgroup Mount Hangs with RBAL Waiting on 'GPnP Get Item' and 'enq: DD - contention' (Doc ID 1375505.1)
This is caused by non-published bug:12398300 which is a duplicate of bug:12356910 (also non-published).
最终处理方式如下:
[oracle@dcpddb01_W1DC ~]$ps -ef | grep gpnpd.bin
grid 17122 23407 0 10:11 pts/0 00:00:00 grep --color=auto gpnpd.bin
grid 41358 1 0 01:00 ? 00:00:43 /u01/app/11.2.0.4/grid/bin/gpnpd.bin
[grid@dcpddb01_W1DC ~] kill -9 17122
You have mail in /var/spool/mail/root
[grid@dcpddb01_W1DC ~]
[grid@dcpddb01_W1DC ~] ps -ef | grep gpnpd.bin
grid 16338 23407 0 10:20 pts/0 00:00:00 grep --color=auto gpnpd.bin
grid 22368 1 0 01:00 ? 00:00:44 /u01/app/11.2.0.4/grid/bin/gpnpd.bin
su - grid
$ sqlplus / as sysasm
SQL> SELECT inst_id,sid,serial#,event,username,sql_id,machine,program,blocking_session from gv$session where wait_class<>'Idle';
no rows selected
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA_DG MOUNTED
BAK_DG MOUNTED
VOTE_DG MOUNTED
ARC_DG MOUNTED
SQL>
再次验证查询v$asm_disk已经恢复正常,故障解决。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31547506/viewspace-2939736/ ,如需转载,请注明出处,否则将追究法律责任。