مجمع اتصال خفيف الوزن لـ PostgreSQL.
الصفحة الرئيسية: https://www.pgbouncer.org/
المصادر، تتبع الأخطاء: https://github.com/pgbouncer/pgbouncer
يعتمد PgBouncer على بعض الأشياء ليتم تجميعها:
عندما يتم تثبيت التبعيات، قم فقط بتشغيل:
$ ./configure --prefix=/usr/local
$ make
$ make install
إذا كنت تقوم بالإنشاء من Git، أو تقوم بالإنشاء لنظام التشغيل Windows، فيرجى الاطلاع على تعليمات البناء المنفصلة أدناه.
يستضيف PgBouncer عمليات البحث عن الأسماء في وقت الاتصال بدلاً من مرة واحدة فقط في وقت تحميل التكوين. وهذا يتطلب تنفيذ DNS غير متزامن. يوضح الجدول التالي الواجهات الخلفية المدعومة وترتيب فحصها:
الخلفية | موازي | اي دي ان اس 0 (1) | / الخ / المضيفين | بحث الخدمية (2) | ملحوظة |
---|---|---|---|---|---|
ج-آريس | نعم | نعم | نعم | نعم | IPv6+CNAME عربات التي تجرها الدواب في <=1.10 |
evdns، ليبفينت 2.x | نعم | لا | نعم | لا | لا يتحقق من تحديثات /etc/hosts |
getaddrinfo_a, glibc 2.9+ | نعم | نعم (3) | نعم | لا | غير متاح على غير glibc |
getaddrinfo، ليبك | لا | نعم (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
(القيمة الافتراضية هي لا). عند التجميع بدعم 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