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가 아닌 경우 해당 없음 |
getaddrinfo, libc | 아니요 | 네 (3) | 예 | 아니요 | pthread가 필요합니다 |
options edns0
/etc/resolv.conf
에 추가하세요.c-ares는 가장 완벽한 기능을 갖춘 구현이며 대부분의 용도와 바이너리 패키징에 권장됩니다(충분히 새로운 버전을 사용할 수 있는 경우). Libevent의 내장 evdns는 나열된 제한 사항과 함께 다양한 용도에도 적합합니다. 다른 백엔드는 현재 대부분 레거시 옵션이며 더 이상 많은 테스트를 받지 않습니다.
기본적으로 c-ares를 찾을 수 있으면 사용됩니다. configure --with-cares
사용하여 강제로 사용하거나 --without-cares
사용하여 비활성화할 수 있습니다. c-ares가 사용되지 않는 경우(찾을 수 없거나 비활성화된 경우) Libevent가 사용됩니다. Libevent의 evdns 사용을 비활성화하고 libc 기반 구현으로 대체하려면 --disable-evdns
지정합니다.
PAM 인증을 활성화하기 위해 ./configure
에는 --with-pam
플래그가 있습니다(기본값은 no). PAM 지원으로 컴파일되면 새로운 전역 인증 유형인 pam
사용하여 PAM을 통해 사용자를 확인할 수 있습니다.
시스템 통합을 활성화하려면 --with-systemd
configure
옵션을 사용하세요. 이를 통해 Type=notify
(또는 systemd 253 이상을 사용하는 경우 Type=notify-reload
)와 소켓 활성화를 사용할 수 있습니다. 예제는 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