ORA-00060跟踪文件说明

时间:2015-04-29 12:14:03

标签: oracle database-deadlocks

我在合并查询中有这个众所周知的死锁。没有外键,触发器,任何PL / SQL。主表是仅具有复合主键的btree索引。辅助表是临时会话私有的(甚至没有主键)。 多个线程将条目插入到时态表中并调用merge。

这些东西看起来很典型,但我无法对问题来源进行分类。我挖了一篇文章Application design is only reason for。我的案例并不适合任何提到的模式%100。

死锁图中的锁类型看起来像"主键重叠",但我的跟踪有行。虽然有2个循环行,但偶然情况下根本没有行。

Deadlock graph:
                       ---------Blocker(s)--------  ---------Waiter(s)---------
Resource Name          process session holds waits  process session holds waits
TX-0006000d-00010e04        24    1432     X             23    2918           S
TX-00270002-00019175        23    2918     X             24    1432           S

session 1432: DID 0001-0017-015A7B2A    session 2918: DID 0001-0031-002724EE 
session 2918: DID 0001-0031-002724EE    session 1432: DID 0001-0017-015A7B2A 

Rows waited on:
  Session 1432: obj - rowid = 00004061 - AAAEBhAAEABfFCsAAA
  (dictionary objn - 16481, file - 4, block - 24924332, slot - 0)
  Session 2918: obj - rowid = 00004061 - AAAEBhAAEABfFCsAAA
  (dictionary objn - 16481, file - 4, block - 24924332, slot - 0)

在跟踪的第二个片段中,我看到只有1个插槽(已提交并已释放锁定)。根据{{​​3}}" Lck"意味着根本没有锁定行,那么我看到上面有2行?

 Object id on Block? Y
 seg/obj: 0x4061  csc: 0x00.24a90627  itc: 1  flg: E  typ: 2 - INDEX
     brn: 0  bdba: 0x156a730 ver: 0x01 opc: 0
     inc: 0  exflg: 0

 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x0006.00a.0000d5fb  0x000556a1.13a8.02  C---    0  scn 0x0000.24a8fa32
Branch block dump

0 个答案:

没有答案