Облегченный пул соединений для PostgreSQL.
Домашняя страница: https://www.pgbouncer.org/
Исходники, отслеживание ошибок: https://github.com/pgbouncer/pgbouncer.
Компиляция PgBouncer зависит от нескольких вещей:
Когда зависимости установлены, просто запустите:
$ ./configure --prefix=/usr/local
$ make
$ make install
Если вы выполняете сборку из Git или для Windows, см. отдельные инструкции по сборке ниже.
PgBouncer выполняет поиск имени хоста во время подключения, а не только один раз во время загрузки конфигурации. Для этого требуется асинхронная реализация DNS. В следующей таблице показаны поддерживаемые серверные части и порядок их проверки:
серверная часть | параллельный | ЭДНС0 (1) | /etc/хосты | SOA-поиск (2) | примечание |
---|---|---|---|---|---|
с-ареса | да | да | да | да | Ошибка IPv6+CNAME в <=1.10 |
evdns, libevent 2.x | да | нет | да | нет | не проверяет обновления /etc/hosts |
getaddrinfo_a, glibc 2.9+ | да | да (3) | да | нет | Н/Д для не-glibc |
getaddrinfo, libc | нет | да (3) | да | нет | требует pthreads |
options edns0
в /etc/resolv.conf
.c-ares является наиболее полнофункциональной реализацией и рекомендуется для большинства случаев использования и двоичной упаковки (если доступна достаточно новая версия). Встроенный в Libevent evdns также подходит для многих целей с перечисленными ограничениями. Остальные серверные части на данный момент в основном представляют собой устаревшие варианты и больше не подвергаются тщательному тестированию.
По умолчанию используется c-ares, если его можно найти. Его использование можно принудительно включить с помощью configure --with-cares
или отключить с помощью --without-cares
. Если c-ares не используется (не найден или отключен), то используется Libevent. Укажите --disable-evdns
, чтобы отключить использование evdns Libevent и вернуться к реализации на основе 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
.
Для сборки PgBouncer из Git необходимо получить подмодули 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