search
LoginSignup
18

More than 3 years have passed since last update.

Organization

PostgreSQLでロックを解除する方法

ロックの確認方法

様々なサイトで以下の方法でロックされているpidを探す記事がほとんどだった。

SELECT l.pid,l.granted,d.datname,l.locktype,relation,relation::regclass,transactionid,l.mode
    FROM pg_locks l  LEFT JOIN pg_database d ON l.database = d.oid
    WHERE  l.pid != pg_backend_pid()
    ORDER BY l.pid;
select * from pg_stat_activity;

ロックの解除方法

SELECT pg_cancel_backend(プロセスID)

プロセスIDには以下を指定

pg_stat_activity.procid
pg_locks.pid

これでも、プロセスが消えない場合は以下で解決。

SELECT pg_terminate_backend(プロセスID)

参考サイト

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
18