Anasayfa » PostgreSQL Patroni Cluster Kurulumu-Part1

PostgreSQL Patroni Cluster Kurulumu-Part1

PostgreSQL-Patroni-Cluster-Kurulumu

Bu yazıda, HA(High Availability) yapıda PostgreSQL Patroni Cluster Kurulumu ‘nun önemli bileşenlerinin yapılandırmasını adım adım ele alacağız. Bu bölüm, tüm sunucularda yapılması gereken sistemsel ayarlar ile sunucularda gerçekleştirilecek temel veri tabanı yapılandırmalarını kapsamaktadır. Kurulum için 3 veri tabanı sunucusu ve 1 HAProxy-Pgbouncer sunucumuz olacaktır. Cluster mimarimiz anlaşılması açısından aşağıdaki görselde sade bir şekilde belirtmek istedim.

Mimarimizden de anlaşılacağı üzere uygulamalar doğrudan veri tabanı sunucularına bağlanmak yerine haprxypb makinemizdeki pgbouncer ve haproxy servislerine bağlantı sağlayacak. Buradaki HAproxy ve Pgbouncer ayrı sunucularda yapılandırılması tavsiye edilmektedir. Öncelikle veri tabanı sunucularının kurulumundan başlıyoruz.

Postgresql Kurulumu

  • Sunucu Hostname Ayarlarının Yapılandırılması

Patroni kümesi içinde yer alacak tüm sunucuların birbiriyle sorunsuz iletişim kurabilmesi için /etc/hosts dosyasını aşağıdaki gibi düzenleyin. Bu işlem tüm sunucularda yapılmalıdır.

sudo vi /etc/hosts

192.168.26.101 postgres1
192.168.26.102 postgres2
192.168.26.103 postgres3
192.168.26.104 haprxypb
  • PostgreSQL 15 Kurulumu

Tüm db sunucularında(postgres1,postgres2,postgres3) PostgreSQL 15 sürümünü aşağıdaki komut ile install:

sudo yum install postgresql15 postgresql15-server postgresql15-contrib
  • Data Dizini Oluşturma

PostgreSQL data ve conf dosyalarını init edeceğimiz /data directory tüm sunucularda oluşturulup owner-group postgres olarak ayarlanır:

sudo mkdir /data
sudo chown postgres:postgres /data
  • initdb işlemi

Postgres kullanıcısı ile birinci sunucuda (örneğin postgres1) oluşturduğumuz directory’e init gerçekleştirilir. Diğer node lar için Patroni config işlemlerini yaptıktan sonra, patroni servisini start verdikten sonra gerekli verileri diğer sunuculara otomatik olarak taşıyacaktır.

sudo su - postgres
/usr/pgsql-15/bin/initdb -D /data
  • postgresql.conf Dosyasının Düzenlenmesi

Bu ayarlar, veritabanının kullanılabilirliğini ve performansını optimize etmek için gereklidir. /data/postgresql.conf dosyasında aşağıdaki parametreleri düzenleyelim:

data_directory = '/data'
listen_addresses = '*'
shared_buffers = 2048MB
max_connections = 200
  • pg_hba.conf Dosyasına Erişim Kurallarının Eklenmesi

/data/pg_hba.conf dosyasına, hem normal kullanıcı bağlantıları hem de replikasyon işlemleri için gerekli olan aşağıdaki satırları ekleyin. Burada tüm iplerden gelen erişimlere izin verdik prod ortamlarda kullanıcı,ip ve database bazlı erişim izni vermeniz gerekmektedir.

# Replikasyon bağlantı izinleri
host    replication     replicator      127.0.0.1/32       md5
host    replication     replicator      0.0.0.0/0          md5

# Genel bağlantı izinleri
host    all             all             0.0.0.0/0          md5
  • PostgreSQL Servisinin Başlatılması

Postgresql servisi başlatılıp postgres şifresi değiştirilir ve cluster için kullanılacak replicator kullanıcısı oluşturulur.

sudo systemctl enable --now postgresql-15.service
--Postgres kullanıcısı ile
psql -c "ALTER USER postgres WITH PASSWORD 'postgres';"
psql -c "CREATE USER replicator WITH REPLICATION PASSWORD 'replication';"
  • PostgreSQL Servis Dosyasını Düzenleme

Postgresql servisi default olarak data dizinini /var/lib/pgsql/15/data/ olarak oluşturur. Servisin /data dizinin altında başlaması için environment PGDATA değeri değiştirilmelidir:

sudo vi /usr/lib/systemd/system/postgresql-15.service

Aşağıdaki satırı bulun ve düzenleyin:

- Environment=PGDATA=/var/lib/pgsql/15/data/
+ Environment=PGDATA=/data/

Yukarıdaki adımları tamamladıktan sonra, Patroni yapılandırmasına geçmeye hazırsınız. Bu işlemler, Patroni’nin PostgreSQL’i doğru bir şekilde yönetebilmesi için altyapıyı oluşturur.

Bu yazıda, PostgreSQL Patroni Cluster Kurulumu için temel PostgreSQL kurulum ve yapılandırma adımlarını anlattık. Bir sonraki bölümlerde, Patroni ve Etcd kurulumu ile HA mimarisini tamamlayacağız.

Patroni-ETCD kurulumu için diğer yazımı inceleyebilirsiniz.

PostgreSQL Single instance kurulu için yazıyı inceleyebilirsiniz.

More Reading

Post navigation

Leave a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir