*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.