PostgreSQL的轻量级连接池。
PgBouncer取决于几件事情获得编译:
安装完依赖以后,只需要运行
$ ./configure --prefix=/usr/local --with-libevent=libevent-prefix $ make $ make install
如果你是从git构建的,或者是为了Windows构建的,请查看下面分别的构建说明。
从PgBouncer 1.4开始,它在连接时而不是配置加载时执行主机名查找。 这需要适当的异步DNS实现。以下列表显示支持的后端和他们的查看顺序:
后端 | 并行 | EDNS0 (1) | /etc/hosts | SOA 查找 (2) | 注意 |
---|---|---|---|---|---|
c-ares | yes | yes | yes | yes | ipv6+CNAME buggy in <=1.10 |
udns | yes | yes | no | yes | 仅ipv4 |
evdns, libevent 2.x | yes | no | yes | no | 不检查 /etc/hosts 更新 |
getaddrinfo_a, glibc 2.9+ | yes | yes (3) | yes | no | N/A 在非Linux上 |
getaddrinfo, libc | no | yes (3) | yes | no | N/A 在win32上,需要pthreads |
evdns, libevent 1.x | yes | no | no | no | buggy |
- EDNS0需要在一个主机名后面有超过8个地址。
- 需要进行SOA查找以重新检查区域串行更改的主机名
- 要启用EDNS0,添加 options edns0 到/etc/resolv.conf
./configure 还有标志 --enable-evdns 和 --disable-evdns, 它们关闭自动探测并强制使用 evdns 或 getaddrinfo_a()。
从GIT构建PgBouncer要求您获取libusual子模块并生成头文件和配置文件,然后才能运行configure
$ git clone https://github.com/pgbouncer/pgbouncer.git $ cd pgbouncer $ git submodule init $ git submodule update $ ./autogen.sh $ ./configure ... $ make $ make install
需要额外的包:autoconf、automake、libtool、 autoconf-archive、python-docutils和pkg-config。
目前只有env测试的版本是MINGW32 / MSYS。 Cygwin和Visual $ AnyYTHING未经测试。 DNS主机名查询需要Libevent 2.x。
然后执行:
$ ./configure ... $ make
如果从Unix进行交叉编译:
$ ./configure --host=i586-mingw32msvc ...
从命令行运行是正常的,除了-d(守护进程),-R(重新启动) 和-u(切换用户)开关将不工作。
要作为Windows服务运行pgbouncer,你需要配置 service_name 参数为服务设置名字。然后:
$ pgbouncer -regservice config.ini
要卸载服务:
$ pgbouncer -unregservice config.ini
要使用Windows事件日志,在配置文件中设置"syslog = 1"。 但是之前你需要注册pgbevent.dll:
$ regsvr32 pgbevent.dll
要卸载它,执行:
$ regsvr32 /u pgbevent.dll