ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

postgresqlで不要なセッションを削除する

なるべく安全に削除したい

SELECT * FROM pg_stat_activity where pid <> pg_backend_pid();

上記で自分以外( pid <> pg_backend_pid() )の一覧を取得

backend_typeが「 client backend 」のもので、怪しいものを見つける。

該当のものを削除

SELECT pg_terminate_backend(pid) FROM pg_stat_activity 
where 
  pid <> pg_backend_pid()
  and datname = '対象のDBの名前’
  and backend_type = 'client backend'
  and pid = 【消したいPID】;

※条件をいろいろいれて一応致命的な結果になることを避けてます。