Posts

Showing posts with the label HA

PostgreSQL High Availability - Patroni 2

Patroni kurulumuyla ilgili oldukça fazla kaynak bulunmakta fakat kurulum ve yönetimini beraber barındıran kaynağa denk gelmedim. Bu yazıda hem Patroni kurulumu hem de kurulum sonrası yönetimiyle alakalı detaylara ulaşabilirsiniz. PostgreSQL cluster'larının yönetimi için kullanılan Patroni ile ilgili temel bilgilerin yer aldığı Autofailover üzerine hazırladığım yazı serisine aşağıdaki linklerden erişebilirsiniz. PostgreSQL ve Autofailover PostgreSQL'de Autofailover ve Patroni 1 (Giriş) PostgreSQL'de Autofailover ve Patroni 2 (Kurulum, Konfigürasyon ve Yönetim) PostgreSQL'de Autofailover ve Patroni 3 (Mevcut PostgreSQL Cluster'inin Patroni'ye Geçirilmesi) Patroni, PostgreSQL veritabanlarının kurulumundan ve konfigürasyonundan sorumludur. Yani Patroni'yi kurduğumuz sunucular aynı zamanda Patroni ile kurulmuş PostgreSQL'leri barındıracak. Üç node'lu PostgreSQL ve üç node'lu ETCD cluster'larını oluşturacağım. Kuruluma önce üç no

PostgreSQL High Availability - Patroni 1

Patroni, PostgreSQL HA (High Availability) Cluster yapısının kurulması ve yönetimi için kullanılan open source bir araçtır. Patroni, PostgreSQL Cluster’inin kurulumu (bootstrap), replikasyonunun kurulumu, PostgreSQL otomatik failover yapılması amacıyla kullanılır. Python ile yazılmıştır. Bir önceki yazıda PostgreSQL'de Autofailover araçlarının ne olduğu ve neden Autofailover'a gereksinim duyulduğu konusunda yazı paylaşmıştım. Yazıya buradan ulaşabilirsiniz. Patroni Kurulumu İçin Gereksinimler nedir? Patroni’nin tek başına kurulumu autofailover yapısını yapılandırmak için yeterli değildir. Patroni ile Autofailover yapısının kurulması için DCS (Distributed Configuration Store) araçlarından birine ihtiyaç vardır. Bunlardan bazıları; ETCD, Consul, ZooKeeper, Kubernetes. PostgreSQL üzerinde Autofailover araçlarından Patroni entegre edecekseniz DCS araçlarından birini kullanmanız gerekecek. DCS dediğimiz şey aslında Service Discovery araçlarından biri olduğundan bu iki tan

PostgreSQL ve Autofailover

Bir veritabanının düzenli olarak yedeğinin alınması ve sağlıklı replikasyonun mevcut olması kadar olabilecek herhangi felaket senaryosunda veritabanının devamlılığı da oldukça önemlidir. Gelen taleplerin primary veritabanına ulaşılamama durumunda (sunucunun kapanması veya Postgres servisinin kapanması gibi) okuma ve daha da önemlisi yazma işlemlerinin standby node'lar üzerindeki veritabanından devam etmesi yani read-only olan bir node'un writable olması bir veritabanı yöneticisinin yapması gereken öncelikli işlerden biridir. Bahsettiğim bu yapı Autofailover yapısının mevcut olmasıyla mümkündür. PostgreSQL veritabanıyla bir Autofailover yapısının kurulmasının birden fazla yolu vardır. Temel olarak Autofailover için aşağıdaki araçlar kullanılabilir. Patroni (By Zalando)  Repmgr (Replication Manager)  PAF (PostgreSQL Automatic Failover)  Pg_auto_failover (By Citus)  Yukarıda belirtilen araçların her birini Autofailover yapısını PostgreSQL üzerine entegre etmek için ücr