我在托管Oracle 10g的AIX服务器上使用nohup并行运行一系列脚本。这些脚本是其他人编写的,旨在同时执行。所有脚本都在对表进行更新。我遇到了错误,
ORA-00060: deadlock detected while waiting for resource
我通过谷歌搜索发现,http://www.dba-oracle.com/t_deadly_perpetual_embrace_locks.htm
虽然这些脚本正在对同一个表进行并发更新,但它们正在使用不同的WHERE
子句确定表中不重叠的记录进行更新。
那么这是否会导致错误?
无论在表的哪个位置执行更新,此错误是否会发生?
我应该始终避免在表上进行并发更新吗?
奇怪的是,在nohup.out日志中还发现了:PL/SQL successfully completed
上述引用错误之后。
这是否意味着Oracle已从死锁中恢复,并成功完成了更新?还是我应该按顺序重新运行这些脚本?