我的一个PL/SQL存储过程上有一个reccurent死锁。
我想这是50次中的1次。
总是在同一条线上。
我已经检查了最常见的原因,比如我的外键有索引。
我知道它遇到了死锁,因为这个PL/SQL过程将DBMS_UTILITY.FORMAT_ERROR_堆栈插入到自定义日志表中。
下面是我的自定义日志表正在报告的内容
ORA-00060: deadlock detected while waiting for resource
ORA-06512: at "USER.PROC_NAME", line 554
显然,我应该能够获得更多的细节,比如死锁图,以帮助我在oracle日志中找到原因。
我运行了下面的命令以找出错误的记录位置(从V$DIAG_INFO;中选择*)
它给了我以下
Diag Trace E:\ORACLE\diag\rdbms\bdes\bdes\trace
Diag Alert E:\ORACLE\diag\rdbms\bdes\bdes\alert
我去了那些文件夹,在alert文件夹中的死锁时间周围找不到任何东西。
在trace文件夹中,我在6秒前找到了一些自定义日志,其中包括
Trace file E:\ORACLE\diag\rdbms\bdes\bdes\trace\bdes_ora_1476.trc
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Build label: RDBMS_12.2.0.1.0_WINDOWS.X64_170210.4
Windows NT Version V6.2
ORACLE_HOME = E:\oracle\product\12.2.0
Node name : *****
CPU : 8 - type 8664, 8 Physical Cores
Process Affinity : 0x0x0000000000000000
Memory (Avail/Total): Ph:14827M/32767M, Ph+PgF:19325M/37631M
VM name : VMWare Version (6)
Instance name: *****
Redo thread mounted by this instance: 1
Oracle process number: 23
Windows thread id: 1476, image: ORACLE.EXE (SHAD)
*** 2018-08-03T10:04:21.754777+02:00
我能做点什么吗?我错过了什么?
谢谢你的时间,让我知道,如果我能给你更多的有用的信息。