Master-Slave PostgreSQL12 Replication Kurulumu
Merhaba Arkadaşlar,
PostgreSQL 12 de master-slave kurulumunu anlatacağım.
MASTER Makinasında yapılacaklar;
Öncelikle replication kullanıcısı oluşturulur.
- postgres=# create role engrep password 'engrep123' login replication;
pg_hba.conf dosyasına aşağıdaki satır eklenir.
- host replication all 0.0.0.0/0 md5
Slot oluşturulur.
- select pg_create_physical_replication_slot('engrep');
Slot oluş mu diye kontrol edilebilir.
- postgres=# select * from pg_replication_slots;
Test amaçlı aşağıdaki tablo oluşturulur ve içerisine data atılır.
- postgres=# create table the_table as select gs,format('test %s', gs) from generate_series(1, 10000000) gs;
SLAVE Makinada yapılacaklar;
Aşağıdaki komut ile master makinadan datalar ve configler alınır.(Slave makinada postgresql veritabanı kuruluğunu düşünüyoruz.)
- pg_basebackup --host=pg1 --port=5432 --username=engrep --pgdata=/var/lib/postgresql/12/main --write-recovery-conf --wal-method=stream --checkpoint=fast --progress --slot=engrep –verbose
Eskiden bu aşamada recovery.conf dosyası oluşturuyordur artık buna gerek yok yukardaki komut postgresql.auto.conf dosyasında parameterelerimizi oluşturuyor
more postgresql.auto.conf dosyasını kontrol ettiğinde aşağıdaki gibi bir çıktı görmelisiniz.
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=engrep password=engrep123 host=pg1 port=5432 sslmode=pr
efer sslcompression=0 gssencmode=prefer krbsrvname=postgres target_session_attrs
=any'
primary_slot_name = 'engrep'
Slave makinası restart edilir.
- systemctl stop postgresql-12.service
- systemctl start postgresql-12.service
Yukarda anlattığım replication async replication dir sync replication olsun istiyorsanız aşağıdaki değişiklikleri yapmanız yeterli.
- postgres=# alter system set synchronous_standby_names='engrep';
- postgres=# Select pg_reload_conf();
- slave makinası restart edilir.
- systemctl stop postgresql-12.service
- systemctl start postgresql-12.service
Umarım Faydalı olmuştur...
Hazırlayan: Engin YILMAZ