*2 adet Ubuntu Server 20.04 LTS gerekli.
*Birinci sunucu master, ikinci makine ise slave.
*Master okuma-yazma, slave ise readonly.
İşlem adımları:
Her iki sunucuda yapılacaklar:
1- ip adresleri ve hostname ayarları.
2- apt update && apt upgrade -y
ile güncellemeler.
3- sudo apt-get install postgresql postgresql-client postgresql-contrib -y
ile PostgreSQL 12 kur.
4- nano /etc/postgresql/12/main/postgresql.conf
dosyasında localhost yerine listen_addresses = '*'
postgresql portunun ip üzerinden dinleyecek hale getir.
Master sunucuda yapılacaklar:
1- sudo -u postgres psql
postgresql giriş.
2- create user replicaauthuser with replication encrypted password 'Password1';
replication için gerekli user ve password oluştur.
3- nano /etc/postgresql/12/main/pg_hba.conf
dosyasında host replication replicaauthuser 10.10.10.11/32 md5
oluşturduğunuz kullanıcı adı ve slave sunucunun ip adresini gir.
4- systemctl restart postgresql
postgresql servisini yeniden başlat.
Slave sunucuda yapılacaklar:
1- systemctl stop postgresql
postgresql servisini durdur ve su - postgres
postgres kullanıcısına giriş yap.
2- rm -rf /var/lib/postgresql/12/main/*
postgresql veri dizinindeki herşeyi uçur sil.
3- pg_basebackup -h 10.10.10.10 -D /var/lib/postgresql/12/main -U replicaauthuser -P -v -R -X stream -C -S slave01
replication ayarını yap. Komuttaki ip adresi master sunucusuna aittir.
4- cd /var/lib/postgresql/12/main
bakınca master sunucudaki içeriklerin geldiği görülür.
5- systemctl restart postgresql
ile postgresql servisi restart edilir.
Master sunucuda kontrol için yapılacaklar:
1- su - postgres
2- psql -c "SELECT * FROM pg_replication_slots;"
çıktısında slave01 ve active_pid numarasına sahip olmalı.
3- Ayrıca psql -c "\x" -c "SELECT * FROM pg_stat_replication;"
ilede kontrol edilebilir.