Oracle 10g をホストする AIX サーバー上で一連のスクリプトを nohup として並行して実行しています。これらのスクリプトは他の誰かによって書かれており、同時に実行されることを意図しています。すべてのスクリプトがテーブルで更新を実行しています。私はエラーが発生しています、
ORA-00060: リソースの待機中にデッドロックが検出されました
これをグーグルで検索したところ、 http://www.dba-oracle.com/t_deadly_perpetual_embrace_locks.htmが見つかりました
スクリプトは同じテーブルで同時に更新を実行していますが、WHERE
句によって決定されたテーブルの異なるレコードで更新を実行しており、それらの間でレコードが重複することはありません。
それで、これはエラーを引き起こしたでしょうか?.
テーブルのどこで更新が実行されても、このエラーは発生しますか?
テーブルでの同時更新を常に避けるべきですか?
PL/SQL successfully completed
奇妙なことに、上記の引用されたエラーの後に、nohup.out ログにもありました
。
これは、オラクルがデッドロックから回復し、更新を正常に完了したことを意味しますか?それとも、これらのスクリプトを連続して再実行する必要がありますか? どんな助けでも大歓迎です。
前もって感謝します。