根據https://pgbouncer.github.io/usage.html運行KILL db;
應該立即刪除給定數據庫上的所有客戶端和服務器連接。 我試圖用pgbouncer kill命令塊後續連接
=# kill postgres;
停止對我的測試環境的Postgres所有的連接,它真的關閉了所有客戶端和服務器的連接,但我無法連接到Postgres的了。
$ psql -h localhost -p 6543 postgres
psql: ERROR: pgbouncer cannot connect to server
在postgresql.log我有以下消息
[2016-04-27 16:21:38 u=postgres d=postgres h=[local] p=12458 l=1] LOG: could not send data to client: Broken pipe
[2016-04-27 16:21:38 u=postgres d=postgres h=[local] p=12458 l=2] FATAL: connection to client lost
pgBouncer realod不改變這種狀況,只有重新啓動幫助。
=# show databases;
name │ host │ port │ database │ force_user │ pool_size │ reserve_pool │ pool_mode │ max_connections │ current_connections
─────────┼──────┼──────┼──────────┼────────────┼───────────┼──────────────┼───────────┼─────────────────┼─────────────────────
postgres │ NULL │ 5454 │ postgres │ NULL │ 5 │ 100 │ NULL │ 0 │ 0
=# show version;
NOTICE: pgbouncer version 1.7.2
- 任何人能解釋發生了什麼事?
- 有沒有辦法通過pgbouncer修復postgres連接而不重新啓動?
- 如果數據庫連接鎖定是預期的kill命令行爲,如何關閉所有連接而不阻止新連接?
感謝,米哈伊爾