Postgresql

如何在不停止伺服器的情況下斷開與特定數據庫的所有連接?

  • November 9, 2016

我想刪除目前打開到特定 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');

引用自:https://dba.stackexchange.com/questions/16426