2014-04-17 53 views
0

當我在我的工作中對訪問postgresql數據庫服務器的C#web服務進行了一些更改時,我很粗心,並且忘記關閉一些我建立的連接。在過去幾天對服務進行多次測試後,我意識到我忘記關閉連接,現在無法訪問服務器。如何訪問具有「客戶端太多」並終止連接的postgresql數據庫服務器?

我已經使用其他解決方案,但他們都涉及到我在postgres.conf文件中更改最大連接大小。問題是我自己的電腦上沒有這樣的文件。我假設conf文件位於託管數據庫服務器的原始機器上?

有沒有解決方案,以便我可以再次訪問服務器,並殺死舊的連接,而不必去數據庫的原始主機?

+0

唯一的另一種選擇是作爲數據庫超級用戶進行連接,該超級用戶具有其他用戶無法使用的'superuser_reserved_connections'。或者,如果可以,請訪問數據庫服務器和'kill -TERM'單個PostgreSQL工作服務器後端。將來,您可以通過爲您的應用服務器連接的用戶設置連接限制來防止此問題。 –

回答

2

唯一的其他選擇是:

  • 爲數據庫超級用戶,其中有其他superuser_reserved_connections用戶無法使用連接;或者

  • 如果可以的話,ssh到DB服務器和kill -TERM個別PostgreSQL工作者後端。 (在Windows上,這將是在後臺postgres.exe進程中使用End Process,但是選擇一個安全的終端在Windows上終止會更困難,您希望使用Process Explorer來檢查進程血腥和爭論,所以你可以選擇一個普通的後端)。

將來你可以通過設置你的appserver連接的用戶的連接限制來防止這種情況;請參閱ALTER USER

+0

謝謝。我最終只是試圖反覆連接,最終讓我再次訪問數據庫。我猜可能有些連接被自動殺死了?我不確定發生了什麼事。 – user3445268

相關問題