クラスターの任意のDB内から:
キャッチ22:最初にデータベースに接続する必要があります。たぶんあなたは別のユーザーとして接続することができますか? (デフォルトでは、一部の接続は superuser_reserved_connections
設定。)
このユーザーによる各接続の詳細情報を取得するには:
SELECT *
FROM pg_stat_activity
WHERE usename = 'user_name';
同じユーザーとして または、スーパーユーザーとして、ユーザーのすべての(他の)接続をキャンセルできます:
SELECT pg_cancel_backend(pid) -- (SIGINT)
-- pg_terminate_backend(pid) -- the less patient alternative (SIGTERM)
FROM pg_stat_activity
WHERE usename = 'user_name'
AND pid <> pg_backend_pid();
そうしても大丈夫であることを確認してください。重要なクエリ(または接続)をそのように終了したくない。
pg_cancel_backend()
> およびpg_terminate_backend()
マニュアルに記載されています。
Linuxシェルから
他の接続を自分で開始しましたか?多分あなたのぶら下がっているスクリプト?あなたはそれらを殺すことができるはずです(そうしても大丈夫だと確信しているなら)。
ps
で調査できます 障害が発生している可能性のあるプロセス:
ps -aux
ps -aux | grep psql
強制終了するプロセスを特定した場合(必ず、しない サーバーを強制終了したい):
kill 123457689 # pid of process here.
またはSIGKILL
SIGTERM
の代わりに :
kill -9 123457689