(8.0.22)
サーバ側
デフォルトではログ出力なし
※ innodb_print_all_deadlocks=ONの場合
show engine innodb statusのDEADLOCK情報が出力される
クライアント側
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction
(19c)
-- シングルの場合
サーバ側
2021-03-14T14:59:35.206410+09:00
PDB1(3):Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2626.trc:
2021-03-14T14:59:36.058293+09:00
PDB1(3):ORA-00060: Deadlock detected. See Note 60.1 at My Oracle Support for Troubleshooting ORA-60 Errors. More info in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2626.trc.
クライアント側
行1でエラーが発生しました。:
ORA-00060: リソース待機の間にデッドロックが検出されました。
-- RACの場合
サーバ側
2021-03-14T15:21:37.721779+09:00
Global Enqueue Services Deadlock detected (DID = 4_0_1). More information in file
/u01/app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_lmd0_5410.trc.
※RACの場合アラートログにORA-00060は出力されない
クライアント側
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource
(13)
サーバ側
2021-03-14 15:47:20.789 JST [3079] ERROR: deadlock detected
2021-03-14 15:47:20.789 JST [3079] DETAIL: Process 3079 waits for ShareLock on transaction 969; blocked by process 3081.
Process 3081 waits for ShareLock on transaction 968; blocked by process 3079.
Process 3079: update tab2 set col1 = 1;
Process 3081: update tab1 set col1 = 1;
2021-03-14 15:47:20.789 JST [3079] HINT: See server log for query details.
2021-03-14 15:47:20.789 JST [3079] CONTEXT: while updating tuple (0,1) in relation "tab2"
2021-03-14 15:47:20.789 JST [3079] STATEMENT: update tab2 set col1 = 1;
クライアント側
ERROR: deadlock detected
DETAIL: Process 3079 waits for ShareLock on transaction 969; blocked by process 3081.
Process 3081 waits for ShareLock on transaction 968; blocked by process 3079.
HINT: See server log for query details.
CONTEXT: while updating tuple (0,1) in relation "tab2"
(2019)
https://www.dbsheetclient.jp/blog/?p=1634
https://memorandom-nishi.hatenablog.jp/?page=1482077876
サーバ側
ログ出力なし
※拡張イベント -> system_health -> package0.event_fileから調査可能
クライアント側
メッセージ 1205、レベル 13、状態 51、行 5
トランザクション (プロセス ID 59) が、ロック 個のリソースで他のプロセスとデッドロックして、このトランザクションがそのデッドロックの対象となりました。トランザクションを再実行してください。