Postgresql
如何在不停止伺服器的情況下斷開與特定數據庫的所有連接?
我想刪除目前打開到特定 PostgreSQL 數據庫但不重新啟動伺服器或斷開與其他數據庫的連接的所有連接(會話)。
我怎樣才能做到這一點?
這是我對 StackOverflow 上非常相似的問題的回答。
根據您的 postgresql 版本,您可能會遇到一個錯誤,該錯誤會
pg_stat_activity
導致忽略掉使用者的活動連接。這些連接也沒有顯示在 pgAdminIII 中。如果您正在進行自動測試(在其中您還創建使用者),這可能是一種可能的情況。
在這種情況下,您需要恢復到以下查詢:
SELECT pg_terminate_backend(pg_stat_activity.procpid) FROM pg_stat_get_activity(NULL::integer) WHERE datid=(SELECT oid from pg_database where datname = 'your_database');