一个测试库创建表的时候一直HANG在哪里,后台一直处于enq: TT - contention 等待中。
enq: TT - contention 是串行化表空间操作的一个ENQUEUE。
不光创建表的时候会HANG在那里,INSERT语句如果涉及到空间分配也会HANG在那里。
做了个LEVEL 3的HANGANALYZE 没有发现有用的价值信息。
SYSTEMSTATE显示很多处于Enqueue TT-00000008-00000010等待之中。
45: waiting for 'enq: TT - contention' [Enqueue TT-00000008-00000010] wait
46: waiting for 'enq: TT - contention' [Enqueue TT-00000008-00000010] wait
47: waiting for 'enq: TT - contention' [Enqueue TT-00000008-00000010] wait
48: waiting for 'enq: TT - contention' [Enqueue TT-00000008-00000010] wait
49: waiting for 'enq: TT - contention' [Enqueue TT-00000008-00000010] wait
50: waiting for 'enq: TT - contention' [Enqueue TT-00000008-00000010] wait
MOS上搜了一下,很有可能遇到Bug 8281162: SELF DEADLOCK ON TT ENQUEUE
这是AIX 5.3,ORACLE 10.2.0.4上的BUG,这个数据库正好也是运行在AIX 5.3,ORACLE 10.2.0.4.
Bug 8281162 可能是由于下面的SQL引起的:
BEGIN DBMS_SPACE.ISDATAFILEDROPPABLE_NAME(:1,:2); END;
遗憾的是我没有找到相关的DBMS_SPACE.ISDATAFILEDROPPABLE_NAME SQL。
最后通过重启数据库暂时解决了问题。
阅读(3416) | 评论(0) | 转发(0) |