ตัวรวบรวมการเชื่อมต่อน้ำหนักเบาสำหรับ 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/hosts | การค้นหา SOA (2) | บันทึก |
---|---|---|---|---|---|
ซี-อาเรส | ใช่ | ใช่ | ใช่ | ใช่ | IPv6+CNAME บั๊กกี้ใน <=1.10 |
evdns, อิสระ 2.x | ใช่ | เลขที่ | ใช่ | เลขที่ | ไม่ตรวจสอบการอัพเดต /etc/hosts |
getaddrinfo_a, glibc 2.9+ | ใช่ | ใช่ (3) | ใช่ | เลขที่ | N/A บน non-glibc |
getaddrinfo, libc | เลขที่ | ใช่ (3) | ใช่ | เลขที่ | ต้องใช้ pthreads |
options edns0
ไปที่ /etc/resolv.conf
c-ares เป็นการใช้งานที่มีคุณสมบัติครบถ้วนที่สุด และแนะนำสำหรับการใช้งานส่วนใหญ่และแพ็คเกจไบนารี (หากมีเวอร์ชันใหม่เพียงพอ) evdns ในตัวของ Libevent ยังเหมาะสำหรับการใช้งานหลายอย่าง โดยมีข้อจำกัดที่ระบุไว้ แบ็กเอนด์อื่นๆ ส่วนใหญ่เป็นตัวเลือกแบบเดิม ณ จุดนี้และไม่ได้รับการทดสอบมากนักอีกต่อไป
ตามค่าเริ่มต้น 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
(daemonize), -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