Skip to content

Oracle デットロックの確認と解除方法

Posted in Oracle


ひょんなところでOracleのデットロックが発生(プログラムの組み方が悪い)

SQLで処理が輻輳してデットロックが発生。

確認・解除方法を調べたので記述しておく。

①確認

★確認用のSQL
SELECT SID, SERIAL# FROM V$SESSION
WHERE SID IN (SELECT SID FROM V$LOCK WHERE TYPE IN (‘TM’,’TX’));

②解除

☆解除用のSQL
確認用SQLの結果からプロセスIDとシリアル値を取得してそれぞれに代入する。

alter system kill session ‘sid, serial#’

例:SID→37 serial#→1639 と出た場合
alter system kill session ’37, 1639′;

で解除可能(データの整合性は自分で確認)
解除を行うにはDBAの権限が必要

上記内容はhttp://www.searchman.info/tips/1680.html を参照にさせていただきました。

ありがとうございます。

Be First to Comment

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    CAPTCHA