Pengumpul koneksi ringan untuk PostgreSQL.
Beranda: https://www.pgbouncer.org/
Sumber, pelacakan bug: https://github.com/pgbouncer/pgbouncer
PgBouncer bergantung pada beberapa hal untuk dikompilasi:
Ketika dependensi diinstal, jalankan saja:
$ ./configure --prefix=/usr/local
$ make
$ make install
Jika Anda membuat dari Git, atau membuat untuk Windows, silakan lihat petunjuk pembuatan terpisah di bawah.
PgBouncer melakukan pencarian nama host pada waktu koneksi, bukan hanya sekali pada waktu buka konfigurasi. Ini memerlukan implementasi DNS asinkron. Tabel berikut memperlihatkan backend yang didukung dan urutan pemeriksaannya:
bagian belakang | paralel | EDNS0 (1) | /etc/hosts | Pencarian SOA (2) | catatan |
---|---|---|---|---|---|
kekuatiran | Ya | Ya | Ya | Ya | Kereta IPv6+CNAME di <=1.10 |
evdns, libevent 2.x | Ya | TIDAK | Ya | TIDAK | tidak memeriksa pembaruan /etc/hosts |
getaddrinfo_a, glibc 2.9+ | Ya | ya (3) | Ya | TIDAK | T/A pada non-glibc |
getaddrinfo, libc | TIDAK | ya (3) | Ya | TIDAK | membutuhkan pthread |
options edns0
ke /etc/resolv.conf
.c-ares adalah implementasi dengan fitur paling lengkap dan direkomendasikan untuk sebagian besar penggunaan dan pengemasan biner (jika tersedia versi yang cukup baru). Evdns bawaan Libevent juga cocok untuk banyak kegunaan, dengan batasan yang tercantum. Backend lainnya sebagian besar merupakan opsi lama saat ini dan tidak menerima banyak pengujian lagi.
Secara default, c-ares digunakan jika dapat ditemukan. Penggunaannya dapat dipaksakan dengan configure --with-cares
atau dinonaktifkan dengan --without-cares
. Jika c-ares tidak digunakan (tidak ditemukan atau dinonaktifkan), maka Libevent digunakan. Tentukan --disable-evdns
untuk menonaktifkan penggunaan evdns Libevent dan kembali ke implementasi berbasis libc.
Untuk mengaktifkan otentikasi PAM, ./configure
memiliki tanda --with-pam
(nilai defaultnya adalah no). Ketika dikompilasi dengan dukungan PAM, pam
jenis otentikasi global baru tersedia untuk memvalidasi pengguna melalui PAM.
Untuk mengaktifkan integrasi systemd, gunakan opsi configure
--with-systemd
. Ini memungkinkan penggunaan Type=notify
(atau Type=notify-reload
jika Anda menggunakan systemd 253 atau lebih baru) serta aktivasi soket. etc/pgbouncer.service
etc/pgbouncer.socket
contoh.
Membangun PgBouncer dari Git mengharuskan Anda mengambil submodul libusual dan uthash serta membuat file header dan konfigurasi sebelum Anda dapat menjalankan configure
:
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install
Semua file akan diinstal di /usr/local
secara default. Anda dapat menyediakan satu atau lebih opsi baris perintah untuk configure
. Jalankan ./configure --help
untuk mencantumkan opsi yang tersedia dan variabel lingkungan yang menyesuaikan konfigurasi.
Paket tambahan diperlukan: autoconf, automake, libtool, pandoc
Lihat file README.md
di direktori pengujian tentang cara menjalankan pengujian.
Satu-satunya lingkungan build yang didukung di Windows adalah MinGW. Cygwin dan Visual $ANYTHING tidak didukung.
Untuk membangun MinGW, lakukan hal biasa:
$ ./configure
$ make
Jika kompilasi silang dari Unix:
$ ./configure --host=i586-mingw32msvc
Menjalankan dari baris perintah berjalan seperti biasa, kecuali sakelar -d
(daemonize), -R
(reboot), dan -u
(switch user) tidak akan berfungsi.
Untuk menjalankan PgBouncer sebagai layanan Windows, Anda perlu mengonfigurasi parameter service_name
untuk menetapkan nama layanan. Kemudian:
$ pgbouncer -regservice config.ini
Untuk menghapus instalasi layanan:
$ pgbouncer -unregservice config.ini
Untuk menggunakan log peristiwa Windows, setel syslog = 1
di file konfigurasi. Namun sebelum itu, Anda perlu mendaftar pgbevent.dll
:
$ regsvr32 pgbevent.dll
Untuk membatalkan pendaftarannya, lakukan:
$ regsvr32 /u pgbevent.dll