PostgreSQL 的輕量級連線池。
首頁:https://www.pgbouncer.org/
來源、錯誤追蹤:https://github.com/pgbouncer/pgbouncer
PgBouncer 的編譯依賴以下幾個因素:
安裝依賴項後只需執行:
$ ./configure --prefix=/usr/local
$ make
$ make install
如果您是從 Git 構建,或者是針對 Windows 構建,請參閱下面單獨的構建說明。
PgBouncer 在連線時進行主機名稱查找,而不是僅在配置載入時查找一次。這需要異步 DNS 實作。下表顯示了支援的後端及其探測順序:
後端 | 平行線 | EDNS0 (1) | /etc/主機 | SOA 尋找 (2) | 筆記 |
---|---|---|---|---|---|
c-戰神 | 是的 | 是的 | 是的 | 是的 | <=1.10 中的 IPv6+CNAME 錯誤 |
evdns、libevent 2.x | 是的 | 不 | 是的 | 不 | 不檢查 /etc/hosts 更新 |
getaddrinfo_a,glibc 2.9+ | 是的 | 是 (3) | 是的 | 不 | 對於非 glibc 不適用 |
取得地址資訊、libc | 不 | 是 (3) | 是的 | 不 | 需要 pthreads |
options edns0
新增至/etc/resolv.conf
。c-ares 是功能最齊全的實現,建議用於大多數用途和二進位打包(如果有足夠新的版本可用)。 Libevent 的內建 evdns 也適用於多種用途,但具有列出的限制。目前其他後端大多是遺留選項,不再接受太多測試。
預設情況下,如果可以找到,則使用 c-ares。可以透過configure --with-cares
強制使用它,或透過--without-cares
停用它。如果未使用 c-ares(未找到或停用),則使用 Libevent。指定--disable-evdns
以停用 Libevent 的 evdns 的使用並回退到基於 libc 的實作。
若要啟用 PAM 驗證, ./configure
有一個標誌--with-pam
(預設值為 no)。當使用 PAM 支援進行編譯時,可以使用新的全域身份驗證類型pam
透過 PAM 驗證使用者。
若要啟用 systemd 集成,請使用configure
選項--with-systemd
。這允許使用Type=notify
(或Type=notify-reload
如果您使用的是 systemd 253 或更高版本)以及套接字啟動。有關範例,請參閱etc/pgbouncer.service
和etc/pgbouncer.socket
。
從 Git 建置 PgBouncer 要求您取得 libusual 和 uthash 子模組並產生頭文件和設定文件,然後才能執行configure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
預設情況下,所有檔案都將安裝在/usr/local
下。您可以提供一個或多個命令列選項來configure
.執行./configure --help
以列出可用選項和自訂配置的環境變數。
需要額外的軟體包:autoconf、automake、libtool、pandoc
有關如何執行測試的信息,請參閱測試目錄中的README.md
檔案。
Windows 上唯一支援的建置環境是 MinGW。不支援 Cygwin 和 Visual $ANYTHING。
要在 MinGW 上構建,請執行常規操作:
$ ./configure
$ make
如果從 Unix 交叉編譯:
$ ./configure --host=i586-mingw32msvc
從命令列運行與往常一樣,只是-d
(守護進程)、 -R
(重新啟動)和-u
(切換用戶)開關不起作用。
要將 PgBouncer 作為 Windows 服務運行,您需要設定service_name
參數來設定服務的名稱。然後:
$ pgbouncer -regservice config.ini
若要卸載該服務:
$ pgbouncer -unregservice config.ini
若要使用 Windows 事件日誌,請在設定檔中設定syslog = 1
。但在此之前,您需要註冊pgbevent.dll
:
$ regsvr32 pgbevent.dll
若要取消註冊,請執行以下操作:
$ regsvr32 /u pgbevent.dll