Thursday 25 May 2017

Lab 9.3 Postgresql Database replication


Postingan kali ini tentang replikasi database. Database mysql mempunyai salah satu fitur replication yang sangat bermanfaat untuk para suhu DBA agar sebuah server database mysql mempunyai backup server seandainya salah satu server mengalami down. Konfigurasi tersebut bisa berupa mode Master-Slave.
Cara kerja master slave ini, antara server master dengan slave akan melakukan transfer database sehingga kedua server memiliki isi yang sama persis. Pada server database PostgreSQL kita dapat melakukan konfigurasi replication.

1. Edit file konfigurasi postgresql, lalu aktifkan 'wal_level' atur menjadi hot_standby, aktifkan juga 'synchronous_commit' atur menjadi local.
nano /var/opt/rh/rh-postgresql95/lib/pgsql/data/postgresql.conf

2. masih pada file yang sama, scrol ke bawah, aktifkan 'archive_mode' atur menjadi on. aktifkan 'archive_command' dan atur optionnya menjadi command atau perintah yang digunakan untuk perngarsipan.
'cp %p /var/opt/rh/rh-postgresql95/lib/pgsql/archive/%f'

3. Masih pada file yang sama, scrol kebawah, cari 'max_wal_senders' atur menjadi jumlah server yang digunakan, disini saya hanya menggunakan 2 server. wal_keep_segments. Wal keep segments ini merupakan besar logfile segments, satuannya MB. Pada contoh ini saya mengaturnya menjadi 10. aktifkan synchronous_standby_names, baris ini merupakan pendefinisian dari nama server standby manakah yang akan akan digunakan untuk Database Replication. Nama yang dimaksud yaitu berupa hostname.

4. Buka file pg_hba.conf untuk mengatur ip dan user dll. sesuaikan IP Address server master dengan sever replica slave.
nano /var/opt/rh/rh-postgresql95/lib/pgsql/data/pg_hba.conf

5. restart postgresql agar konfigurasi dapat berjalan.
systemctl restart rh-postgresql95-postgresql
Slave
1. Stop layanan postgresql, kalo gak distop kedepanya akan bermasalah
systemctl stop rh-postgresql95-postgresql
2. Hapus semua file yang ada di directory data postgresql
rm -rf /var/opt/rh/rh-postrgresql95/lib/pgsql/data/
3. Masuk ke shel postgresql
su-postgres
4. Sinkronisasikan Server slave ke master, singkronisasinya berupa pengiriman file yang tadi di hapus.

5. Edit file konfigurasi postgresql yaitu postgresql.conf menjadi seperti gambar dibawah
nano /var/opt/rh/rh-postgresql95/lib/pgsql/data/postgresql.conf

6. Copy file recovery.conf.sample, kemudian ubah nama file tersebut menjadi recovery.conf
nano /opt/rh/rh-postgresql95/root/usr/share/pgsql/recovery.conf.sample /opt/rh/rh-postgresql95/lib/pgsql/data/recovery.conf
7. Edit file recover yang tadi di copy. Pada command ini terdapat perintah scp (secure copy) dan dibelakangnya diikut oleh ip dari server master db serta tujuan pada directory mana file tersebut diletakan, ini berarti segmen file WAL yang diarsipkan di salin dari host tersebut ke destination directory yang telah ditentukan, Sedangkan maksud dari secure copy in dalah, proses penyalinannya secara secure, via ssh. hidupkan Standby mode pada slave dengan cara uncomment pada baris standby_mode dan ubah optionnya menjadi on. primary_conninfo, Primary conninfo ini digunakan Menentukan string koneksi yang akan digunakan agar server standby terhubung dengan server primary (server master db).
nano /var/opt/rh/rh-postgresql95/lib/pgsql/data/recovery.conf


8. Restart postgresql agar konfigurasi yang baru dapat berjalan
systemctl restart rh-postgresql95-postgresql 

7. lalu kita cek pada server master apa slave sudah terhubung dengan baik
psql -c "select application_name, state, sync_priority, sync_state from pg_stat_replication;"

8. untuk pengetesan coba buat 1 database apakah server slave akan membaca

9. lihat pada server slave



Sekian dan Terimakasih

Related Posts

Lab 9.3 Postgresql Database replication
4/ 5
Oleh