Cara Replikasi Database Postgresql
- Saya asumsikan anda sudah menginstall postgresql 9.4.x di dua server yg berbeda, satu akan dijadikan server master dan satu lagi akan dijadikan server slave. IP server master adalah 1.2.3.4 dan IP server slave adalah 5.6.7.8. Silahkan sesuaikan dengan versi postgre dan IP server yg anda gunakan.
Untuk mengecek versi postgresql, silahkan ketikan :
sudo su - postgres
psql
dan untuk exit ketik :
\q
exit
2. Create user replikasi di server master dengan masuk ke postgres terlebih dahulu
sudo su - postgres
psql
CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'password';
3. Edit file postgresql.conf di server master (/etc/postgresql/9.4/main/postgresql.conf) seperti berikut ini
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 8
wal_keep_segments = 8
4. Edit pg_hba.conf, masih di server master dan folder yg sama
Tambahkan baris berikut ini, boleh diletakkan di mana saja :
host replication replicator 5.6.7.8/32 md5
5. Restart master
6. Sekarang beralih ke server slave, edit postgresql.conf sama dengan server master
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 8
wal_keep_segments = 8
7. Masih di server slave. Sekarang jalankan perintah-perintah berikut ini
sudo service postgresql stop
sudo su - postgres
rm -rf /var/lib/postgresql/9.4/main
pg_basebackup -h 1.2.3.4 -D /var/lib/postgresql/9.4/main -U replicator -v -P
Kemudian kembali ke user root, dan ketikkan :
(atau bisa tetap di user postgres, tapi hapus bagian sudo -u postgres
)
sudo -u postgres bash -c "cat > /var/lib/postgresql/9.4/main/recovery.conf <<- _EOF1_
standby_mode = 'on'
primary_conninfo = 'host=1.2.3.4 port=5432 user=replicator password=thepassword'
trigger_file = '/tmp/postgresql.trigger'
_EOF1_
"
sudo service postgresql start
8. Selamat anda sudah berhasil membuat replikasi database
Silahkan test dengan membuat database baru pada server master, dan database tsb akan muncul juga di server slave.
Saya test dengan membuat database ‘coba’ di server master :
dan ini hasilnya di server slave :
Karena server slave merupakan replikasi dari master, maka di master slave kita tidak bisa melakukan perubahan atau penambahan data :
Gambar oleh https://walidumar.wordpress.com
Tidak ada komentar:
Posting Komentar