Pgpool sunucusu gelen sorguları kopyalayarak her iki sunucuya da gönderir. Instance’lar fiziksel dosya yapısında birbirinin kopyası olmayacak olup sadece veri içeriği olarak kopyasıdır.
Artılar;
Sync replikasyon (no loss transaction)
Otomatik Failover (Automatic Failover)
Node’lardan birinde sorun oluşması üzerine Online Recovery
Eksiler;
Yazma hızında %30 düşme
Sequences’larda karışıklık
Gereksinimler;
(www.pgpool.net) Pgpool source dosyası güncel olan
tercih ediniz.
Libpq.so
(/usr/lib64/libpq* kontrol edebilirsiniz.)
Make
Postgresql-devel
Postgresql-lib
Hazırlıklar;
Replikasyon yapılacak iki sunucuda mutlaka aynı sürüm OS olması gerekmekte,
Pgpool kurulu olan sunucu Node1 ve Node2 üzerine postgres (veya pgpool conf’a yazacağınız başka user) ile şifresiz ssh yapabilmesi,
İlk debug modu (-d) ile açarsak loga daha detaylı yazacağından sorunları çözmek açısından daha faydalı olur; Daha sonra servis olarak ayaralayabilirsiniz.
9) Pgpool.conf da verdiğiniz port’a göre pgpool’a bağlanabilirsiniz. Sorgular sadece pgpool üzerinden gelmeli asla postgres instance’lar üzerinden sorgu çalıştırılmamalıdır. Aksi halde veri tutarsızlığı meydana gelir.
psql -p 9999 –h localhost
10) Her iki postgres node’uda başlatıp ardından pgpool başlatırsanız /opt/pgpoolII/log/pgpool.log dosyasında ;
Eklediğimiz instance’ları backend 0 ve backend 1 olarak görürseniz iki node online demektir.(Ayrıca pgpool_status.log dosyasında da instance’ların durumlarını anlık olarak up-down parametreleri ile görebilirsiniz.)
11) Test için pgpool üzerinden tablo create edip her iki node’da da kontrol edebilirsiniz.
12) Node’lardan birinde sorun olduğu durumunda otomatik olarak failover olacak olup sadece tek node tarafına yazmaya başlayacaktır. Sorun olan node’daki sıkıntıyı çözmeniz üzerine Online recovery işlemini yapıp sistem kesintisi olmadan diğer nodu pool’a dahil edebilirsiniz.