PostgreSQL'de çoğaltma ve yük devretme


14

PostgreSQL çoğaltması üzerine bir kavram kanıtı yapıyorum. Forumdaki tartışmadan sonra, performans diğer çözümlere kıyasla iyi olduğu için akış çoğaltmasıyla gitmeye karar verdik. PostgreSQL, akış çoğaltması için otomatik yük devretme sağlamaz. Bir tetikleyici kullanarak slave'i master'a geçirebiliriz ancak yönetilemez. Bu yüzden otomatik yerine çalışma ve yüksek kullanılabilirliğe sahip bir çözüm istiyorum.

Farklı çözümler mevcuttur:

  1. REPMGR
  2. Linux Kalp Atışı
  3. Pgpool-II (yalnızca otomatik yük devretme için)
  4. Kullanmanız durumunda başka herhangi bir araç.

Benim sorum hangi çözümün kullanılması gerektiğidir?

Yanıtlar:


8

Mağazamızda pgpool yerine repmgr ve pgbouncer seçtik. repmgr çoğaltılmış veritabanı sunucuları kümesini kurmak ve korumak için bazı güzel araçlara sahiptir. Bizim durumumuzda 1 master ve 2 slave (yeni yük devretmenin yük devretmesi haline gelebilecek bir yük devretme ve bir canlı okuma performans testi). pgpool, yapılandırmadaki değişikliklerle ilgili sorunlara sahiptir, çoğu durumda hizmeti yeniden başlatmanız gerekir ve bu nedenle bazı kesinti süreniz vardır. 24x7x365 kullanılabilirliğe ihtiyacınız olduğunda bu bir sorundur.

repmgrd (deamon) bir yük devretme sonrasında yeni ustayı seçmeye yardımcı olur, gerçekten bölünmüş bir beyin durumu istemezsiniz. Ana veritabanı için bir sanal ip adresimiz var, o anda ana veritabanı. Başka bir sunucu master olduğunda, bu adresi kullanan tek sunucudur. Her veritabanı sunucusunun ayrıca salt okunur sorgular için kendi ip adresi vardır.

repmgr, ilk etapta akış çoğaltması oluşturan aynı çocuklar tarafından korunur, böylece ne hakkında konuştuklarını bilirler. Sürüm 2.0 piyasaya sürülmek üzere.

En kötü duruma hazır olun, bazı güç ve ağ fişlerini çekerek ciddi testler yapın! Bir şeyler ters gittiğinde, birçok şey zaten yanlış gitti ve bunu karşılayamadığınızda sizi arkada ısırır.

Çoğaltma bir şeydir, bazı ciddi sorunlardan sonra çalışan bir yük devretme, başka bir şeydir.


1

Aynı anda iki farklı çözümü birlikte kullanıyoruz ...

Eşzamanlı çoğaltma için Pgpool-II ve eşzamansız (tetiklenen) çoğaltma için Slony2.

Performans mükemmel


Yanıtınız için teşekkür ederim ... Aslında Pgpool-II'yi akış çoğaltmasıyla deniyorum. Otomatik yük devretme sağlar. Ama birincil düğümü tekrar başlatacaksam, pgpool-II yeniden master veya bekleme düğümü olarak başlayabilir mi?
Saurabh

Bildiğim kadarıyla kesinlikle değil biliyorum. birincil düğümün manuel olarak kurtarılması gerekecektir. Kurulumumuz biraz farklı. bu çok usta bir çevre ve tüm düğümler eşit haklara sahip. Bir düğüm senkronizasyondan çıkarsa yük dengeleyicileri istemcileri bu düğüme yönlendirmeyi reddeder.
user5701
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.