thinking.qi 发表于 2013-12-20 14:36:44

DFS lock handle

本帖最后由 thinking.qi 于 2013-12-20 14:42 编辑

OS:AIX 6.1  ORACLE:11.2.0.1 rac ,用户一直处于等待DFS lock handle,
原因是root定义的一个crontab 在00:05分执行,脚本内容如下:
05 00 * * * /home/oracle/jyc/lymxsolrjob.sh
#
#
# cat /home/oracle/jyc/lymxsolrjob.sh
su - oracle -c "sqlplus 'admin/admin@JXDB' <<EOF
exec SP_LOUYU_MINGXI_TONGBU;
exec SP_LOUYU_MINGXI_SOLR_AUTO;
EOF
"

查询这个事件产生的时间和脚本执行的时间一致都 是 00:05 如下:
可相应的进程的用户怎么变成grid了,,不理解中,求指导:

select PADDR,inst_id,event,status,username,sid,serial#,machine,program,SQL_ID,SQL_HASH_VALUE,TERMINAL
,LOGON_TIME,SQL_EXEC_START,PDML_STATUS,BLOCKING_SESSION,STATE,SEQ#,SECONDS_IN_WAIT
from gv$session where sid=370;

1        07000005B8800800        1        SQL*Net message from client        INACTIVE        JXGL        370        5308        WINDOWS-GG66BZR        JDBC Thin Client                0        unknown        2013-12-19 18:38:12                DISABLED                WAITING        4744        111
2        07000005E47A6A30        2        DFS lock handle        ACTIVE        ADMIN        370        1018        JXDB2        sqlplus@JXDB2 (TNS V1-V3)                0                2013-12-20 0:05:00        DISABLED        2134        WAITING        43971        46727


SELECT inst_id,SPID ,PNAME,USERNAME,PID,SERIAL#,TERMINAL,PGA_USED_MEM FROM gV$PROCESS WHERE ADDR='07000005E47A6A30';
1        2        37159396                grid        522        4        UNKNOWN        2792445


ps -ef | grep 37159396
  oracle 28180880 40894794   0 14:08:46  pts/7  0:00 grep 37159396
    grid 37159396        1   0 00:05:00      -  0:04 oraclejxdb2 (LOCAL=NO)

等待事件如下:

SQL> select username,event,count(*) from v$session where username is not null and status='ACTIVE' group by username,event order by 1;

USERNAME                       EVENT                                                              COUNT(*)
------------------------------ ---------------------------------------------------------------- ----------
ADMIN                          DFS lock handle                                                           1
ADMIN                          SQL*Net break/reset to dblink                                             1
ADMIN                          Streams AQ: waiting for messages in the queue                             1
JXGL                           SQL*Net message to client                                                 2
LYJK                           buffer busy waits                                                         1
SYS                            SQL*Net message to client                                                 1

6 rows selected.

SQL> select username,event,p1,p2,p3 from v$session where username is not null and status='ACTIVE' order by 1;

USERNAME                       EVENT                                                                    P1         P2         P3
------------------------------ ---------------------------------------------------------------- ---------- ---------- ----------
ADMIN                          Streams AQ: waiting for messages in the queue                        796367 5.0440E+17       3000
ADMIN                          DFS lock handle                                                  1146617861  201495984          0
ADMIN                          SQL*Net break/reset to dblink                                    1413697536          0          0
JXGL                           SQL*Net message from dblink                                       675562835          1          0
LYJK                           buffer busy waits                                                        47     455515          1
SYS                            SQL*Net message to client                                        1650815232          1          0

6 rows selected.

SQL>
SQL> select chr(bitand(1146617861,-16777216)/16777215) || chr(bitand(1146617861, 16711680)/65535) "Lock",
  2  to_char(bitand(1146617861, 65536)) "Mode" from dual;

Lo M
-- -
DX 0

SQL>

目前的问题是:
1.oracle用户执行的脚本,产生的进程的owner怎么变成了 grid?
2.目前怎么消除这个事件?不能kill 进程,这们实例都挂掉了,有过一次经历。


附件是相应时段的awr 和进程对应的trc



Liu Maclean(刘相兵 发表于 2013-12-21 19:59:56

可相应的进程的用户怎么变成grid了,,不理解中

=>
http://www.askmaclean.com/archives/aix-11-2-grid-infrastructure-rdbms-owned-by-grid.html

Liu Maclean(刘相兵 发表于 2013-12-21 20:01:33

.目前怎么消除这个事件?不能kill 进程,这们实例都挂掉了,有过一次经历。

==>
  grid 37159396        1   0 00:05:00      -  0:04 oraclejxdb2 (LOCAL=NO)

普通的 前台进程,为什么不能KILL?

除非是你遇到了BUG 那么是有可能的, 你的版本是11.2.0.1 ,请叙述自己遇到了什么BUG

thinking.qi 发表于 2013-12-21 20:10:25

谢谢刘大,周一会继续跟踪这个问题。有结果和问题会及时跟贴发出。

thinking.qi 发表于 2013-12-24 22:53:43

上述问题和bug 9774054 描述的现象一致,确认为bug.后台的ORA-600错误也于BUG描述一致:
ORA-00600: internal error code, arguments: , , [], [], [], [], [],[], [], [], [], []
ORA-00600: internal error code, arguments: , , [], [], [],[], [], [], [], [], [], []
页: [1]
查看完整版本: DFS lock handle