PostgreSQL 「DETAIL: 他にこのデータベースを使っている 1 個のセッションがあります。」が発生した場合の対処法

PostgreSQL 「DETAIL:  他にこのデータベースを使っている 1 個のセッションがあります。」が発生した場合の対処法

PostgreSQLで、「DETAIL: 他にこのデータベースを使っている 1 個のセッションがあります。」が発生した場合の対処法を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • PostgreSQL 14.0
  • pgadmin 6.0

エラー全文

「drop」実行時に発生。

DROP DATABASE sample

以下のエラーが発生

ERROR:  データベース"sample"は他のユーザーからアクセスされています
DETAIL:  他にこのデータベースを使っている 1 個のセッションがあります。
SQL 状態: 55006

対処法

使用しているセッションを確認して、切断します。

セッションを確認します。

select * from pg_stat_activity

これで「pid」が確認できるので、

プロセスを切断します。

select pg_terminate_backend(283023)
select pg_terminate_backend(283060)

pgadmin上で実行すると、新しいセッションを確立しようとするので、キャンセルにします。

これで「drop」が実行できるようになります。