Postgresql Replication Nedir?
Postgresql Replication Nedir?,PostgreSQL replication iki veya daha fazla sunucular arasında cluster,veritabanı , tablo gibi veritabanı nesnelerinin düzenli olarak aktarıldığı yapılardır diyerek kısaltmak mümkün.
Postgresql master-slave veya master-master şeklinde kullanılacak High availibilty çözümleri bulunmaktadır. Postgresql dünyasında birden fazla yüksek erişilebilirlik çözümü bulunmaktadır. Logical replication,Cascade replication,Streaming replication çeşitleri postgresql ile gelen çözümlerindendir.
Bunlara ek olarak işlemleri kolaylaştırmak ve daha fazla iş yükünü ortadan kaldırarak ve ihtiyaca yönelik kullanacağımız farklı firmaların yaptığı replikasyon türleri de bulunmaktadır. Bunlardan bazıları: Patroni, Postgresql-xl ,pgpool,repmanager
Postgresql de replikasyon ile kurgulama yapmadan önce dikkat etmeniz gerekenler:
- Primary sunucuda herhangi bir sorun onunda otomatik yük devretme çalışmaz manuel konfigürasyonlar yapmanız gerekir. Manuel konfigürasyon yapmak istemezseniz third-party toollardan faydalanabilirsiniz.
- Yük dengeleme (Ioad balancing) işlemleri postgresql de bulunmamaktadır. Bunu yapmak için farklı toollar kullanabilirsiniz.
- Postgresql de multi-master replication bulunmamaktadır.
- Postgresql’in bize sunduğu replikasyon çözümlerinde vip ip bulunmaktadır. Bundan dolayı farklı mimariler tercih edilebilir veya caselere göre connection string’e sunucu ipleri yazarak geçici çözümler üretebilirsiniz.
Postgresql Master -slave ,master-master replication nedir?
Master-Slave replication:
Master -Slave replikasyon da bir sunucuya aktif olarak yazılıp diğer sunucunun yedekte durması veya slave makine üzerinden sadece read(okuma) yapılabilen mimarilerdir. Postgresql de master sunucadan Slave sunucu veya sunuculara aktarım yapılmasıdır. slave sunucu da walleri göndermeyi sağlayan walsender processidir. Slave makine üzerinde walleri alıp işlemeyi sağlayan walreceiver processedir.
Postgresql Multi-master(master-master) replikasyon:
Multi -master replikasyon çeşidinde birden fazla sunucu üzerinde hem okuma hem yazma yapacağımız modeldir. Bu model de sunucuların hepsinde işlem yapılır fakat bu mimari de veriler ile ilgili problemler olabilir. Bu yüzden bu mimariyi kurgularken dikkat edilmesi gerekmektedir. Postgresql community tarafından geliştirilmemiştir. Multi-master replikasyon kullanan bazı toollar: Postgresql-XL,POSTGRESQL-XC2,rubyrep,bucardo
SYNC(Senkron)-ASYNC(Asenkron) Replikasyon:
SYNC(Senkron)-ASYNC(Asenkron) Replikasyon primary ile secondary sunular arasında veri transferinin eşit ya da secondary sunucunun data olarak geriden geldiği ile alakalıdır.
Sync(Senkron) Replikasyon da veri koruması ve herhangi bir sorun anında secondarye failover durumunda eşit dataları görebilmek için gereklidir. Primary sunucuda işlem yapıldıktan sonra commit işlemi gerçekleştiğinde secondary sunucuya da yazılır ve bu sayede kullanıcıya geri dönüş olduğunda veriler iki tarafta bulunmuş olmaktadır.
ASYNC (Asenkron) Replikasyon : Primary ile secondary sunucu arasında veri farklılığı olabileceği anlamına gelmektedir. Yani kullanıcı bir işlem gerçekleştirdiğinde secondary sunucuya yazılmadan kullanıcıya işlem başarılı şekilde geri dönüş olmaktadır . Asenkron mimaride olan replikasyon çeşitlerinde secondary sunucu diğeri ile eşit olmayacağı durumda primary sunucuda herhangi bir sorun olup secondary e failover durumunda veriler eksik olabilir.
Postgresql Replikasyon Çeşitleri:
- Logical Replikasyon
- Streaming replikasyon
- Cascade Replication
- Patroni
- Repmanager
- Pgpool
- PAF