DBAtlas · Veritabanı operasyon atlası

PgBouncer ile bakımda bağlantıları beklet (PAUSE/RESUME) ve yapılandırmayı yeniden yükle (RELOAD)

PostgreSQLPgBouncer

Komut

psql -h 127.0.0.1 -p 6432 -U pgbouncer -d pgbouncer -X
RELOAD;            -- pgbouncer.ini ve auth_file değişikliklerini bağlantıları koparmadan uygula
PAUSE <db>;        -- devam eden sorgu/transaction'lar bitince sunucu bağlantılarını kapatır; yeni istekler bekletilir
-- ... bakım: switchover, PostgreSQL restart vb. ...
RESUME <db>;
-- [databases] içinde host değiştirildiyse (RELOAD sonrası) sunucu bağlantılarını kademeli yenile:
RECONNECT <db>;

Ne yapar?

PAUSE, istemci bağlantılarını koparmadan PostgreSQL tarafındaki bağlantıları boşaltır ve yeni sorguları kuyrukta tutar; RESUME ile kuyruk akmaya devam eder. Böylece kısa bir primary restart veya switchover uygulamaya hata yerine kısa bir gecikme olarak yansır.

Ne zaman kullanılır?

Kısa bakım pencerelerinde (switchover, minor sürüm restart'ı, parametre restart'ı) ve pgbouncer.ini/userlist değişikliklerini uygularken.

Dikkat

PAUSE, tüm aktif transaction'lar bitene kadar döner; uzun süren bir sorgu PAUSE'u bekletir (gerekirse o oturumu PostgreSQL'de sonlandır). Bekleyen istemciler query_wait_timeout (varsayılan 120 sn) dolunca hata alır; bakımı bu sürenin içinde bitir. PAUSE'dan sonra RESUME'u unutmak tam kesintidir. Bazı ayarlar (listen_addr, listen_port vb.) RELOAD ile değişmez, restart gerekir.

DBAtlas'ta aç →

İlgili