DBAtlas · Veritabanı operasyon atlası

PgBouncer bağlantı havuzu

PostgreSQLSeviye: OrtaSüre: 30–45 dk

PGDG repo'sundan PgBouncer kurulumu: transaction ya da session havuz modu, auth_query (SECURITY DEFINER fonksiyon) ya da userlist.txt ile scram-sha-256 kimlik doğrulama, veritabanının max_connections ve CPU değerine göre hesaplanmış havuz boyutları, systemd ve isteğe bağlı so_reuseport ile çoklu süreç. Sonunda yönetim konsolu (SHOW POOLS/STATS), uygulama bağlantı dizesi ve transaction modu uyumluluk kontrol listesi.

Ne zaman açılır: uygulamalar yüzlerce/binlerce bağlantı açıyor, sorry, too many clients already alınıyor ya da bağlantı açma maliyeti yüksek. PgBouncer HA ya da yedek çözümü değildir: failover için streaming replication ya da Patroni, yedek için pgBackRest gerekir.

Yapı: PgBouncer veritabanı sunucusunda ya da ayrı sunucuda; Patroni'de HAProxy/VIP önünde

Başlamadan önce

  • PostgreSQL pg-install rehberiyle kurulu ve çalışıyor; … veritabanı ve … kullanıcısı (scram-sha-256 parolalı) var.
  • PostgreSQL …Patroni cluster'ı (pg-patroni) çalışıyor; … şu an Leader…primary'si (pg-streaming) çalışıyor…pg-install rehberiyle kurulu ve çalışıyor…; … veritabanı ve … kullanıcısı (scram-sha-256 parolalı) var.
  • Patroni cluster'ı … sağlıklı: bir Leader, replica'lar streaming; HAProxy'nin yazma portu (…:…) yalnız leader'a gidiyor.
  • Uygulama kullanıcısının parolası SCRAM-SHA-256 biçiminde saklanıyor (eski md5 özetli kullanıcıların parolası password_encryption = scram-sha-256 iken yeniden verilmeli).
  • Formdaki max_connections (…) ve CPU (…) veritabanı sunucusundaki gerçek değerlerle aynı (havuz boyutları bunlara göre hesaplanıyor).
  • PgBouncer sunucusu veritabanına (…HAProxy/VIP ……:…) erişebiliyor; uygulama sunucuları PgBouncer'a (…:…) erişebiliyor.
  • Port … boş.
  • Uygulama ekibiyle havuz modu konuşuldu: transaction modunda oturum durumuna dayanan özellikler (aşağıdaki kontrol listesi) kullanılmıyor.
  • Parola özetlerini veritabanı sunucusundan PgBouncer sunucusuna kopyalamak için scp (root ya da sudo yetkili kullanıcı) erişimi var veya dosyayı başka güvenli yolla taşıyacaksınız.

Rehberin aşamaları

  • PgBouncer kurulumu — PGDG repo'sunu ekle · PGDG repo'sunu ekle · PgBouncer'ı kur
  • Veritabanı tarafı — Rolü doğrula: bu sunucu …Leader…primary… mi? · Yönetim ve doğrulama kullanıcılarını oluştur · Yönetim ve doğrulama kullanıcılarını oluştur · Parolaları ver · Parolaları ver · pg_hba.conf'a PgBouncer sunucusunu ekle …
  • PgBouncer yapılandırması — auth_user parolasını ekle · pgbouncer.ini yaz · Dosya tanımlayıcı sınırını ayarla · PgBouncer'ı başlat
  • Çoklu süreç (so_reuseport) — Süreç başına yapılandırma dosyaları · systemd şablon servisi · Tek süreçli servisi kapat, süreçleri başlat
  • Doğrulama — Uygulama kullanıcısıyla bağlan · Leader'a gidildiğini doğrula · Yönetim konsolunu kontrol et · Firewall'da PgBouncer portunu aç
  • Uygulama tarafı ve kurulum sonrası — Uygulama bağlantı dizesi · Transaction modu uyumluluk kontrol listesi · Havuzu izle · Ayar değişikliği ve yeniden yükleme
Ortamına göre adım adım planı aç →