PostgreSQL 9.1'i değerlendiriyorum ve yük devretme ve çoğaltma ayrıntıları ile ilgili birkaç sorum var.
Birkaç test senaryom var. Birincisi bir Ana sunucu ve birkaç Köleye sahip. Üstat'ın çökmesi durumunda Kölelerden birinin Üstat olmasını istiyorum. Master normal duruma döndükten sonra, kümedeki diğer sunucularla senkronize edilmeli (kapalıyken yapılan tüm değişiklikleri uygulamalıdır) ve Master rolünü geri almalı veya Slave olmalıdır.
PostgreSQL ve mevcut senaryo ile ilgili gördüğüm sorunlar şunlardır.
1) Ana sunucu kesintisini tespit etmek için yerleşik araçlar görmüyorum. Pgpool'un üstesinden gelebileceğini ve tetikleyici dosya oluşturabileceğini okudum, ayrıca insanların bunun için Linux kalp atışı veya benzer araçlar kullandığını da okudum. Tamam, yük devretmeyi tespit edebilir ve kümede yeni bir Master atayabilirim. Diğer Köleler yeni bir Üstat olduğunu anlayacaklar mı ve şimdi onu yedeklemeliler mi?
2) Yeniden çalışma prosedürünü anlamıyorum. Ana ve Bağımlı ana bilgisayar yapılandırmaları farklıdır. Peki, çökmüş Üstat başarısızlığından sonra iki Üstatım olacak mı? Sunucular nasıl senkronize olacak? Yalnızca "veri klasörünü sunucuya aktar ve yeniden başlat" gibi manuel çözümler gördüm. Öyleyse çözüm ya da en iyi uygulama ya da en azından burada kilit prensip nedir?
3) İstemci tarafında sunucu kesintisini nasıl ele almalıyım? Bağlantı oluşturduğumda sunucu IP'sini açıkça belirtiyorum. Master-Slave yapımı tanıyacak bir tür ConnectionManager geliştirmeli miyim, sadece Master'a istek göndermeli ve bağlantı kaybı durumunda yedek sunuculara geçilecekse vb. Pgpool'un uygulamalar için bir giriş noktası olabileceğini ve bağlantıları doğru bir şekilde yönetebileceğini okudum. Pgpool buradaki tek çözüm mü? Yük devretme ve geri dönmeyi iyi ele alıyor mu?
4) (Ticari olarak da) herhangi bir çözüm var mı, bu yüzden verileri manuel olarak kopyalamaktan, PostgreSQL örneklerini ve eller tarafından yapılması gereken diğer şeyleri yeniden yapılandırmaktan kaçınabilir miyim? Öyleyse herkes senkronize olduğunda küme yapılandırması, Master'ın kim olduğu ve her şeyin operatörün ilgisi olmadan otomatik olarak değiştiği açık mı?
Bu konu ve makalelere göre
PostgreSQL'de çoğaltma ve yük devretme
PostgreSQL 9.1'de yük devretmeyi otomatikleştirme
http://denishjpatel.blogspot.com/2010/11/possibility-of-graceful-switchover.html
bu soruları çözmek için tek bir tam otomatik çözüm yoktur. Haklı mıyım?
Teşekkürler!