Selamat Datang di blog saya
Pada kesempatan kali ini kita akan membahas tentang konfigurasi PostgreSQL Database Replication. Apa itu Database Replication ? Database Replication adalah sebuah motode yang dipakai untuk menyalin dan mendistribusikan data dari sebuah database ke database yang lainnya.
Berikut topologinya :
Disini saya menggunakan topologi seperti di atas.
Server Controller
IP Address : 192.168.43.111
Netmask : 255.255.255.0
DNS : 192.168.43.111
Server Node 1
IP Address : 192.168.43.112
Netmask : 255.255.255.0
DNS : 192.168.43.111
PC
IP Address : 192.168.43.113
Netmask : 255.255.255.0
DNS : 192.168.43.111
Langsung ke konfigurasinya...
1. Pertama - tama edit file konfigurasi postgresql.conf.
2. Uncomment "wal_level" dan atur valuenya menjadi " hot_standby ". Uncomment juga " synchronous_commit " dan atur valuenya menjadi " local "
Note :
- wal_level = Sebuah metode standar untuk memastikan integritas data. Dan wal_level juga menentukan berapa banyak informasi yang ditulis di Wal.
- hot_standby = Istilah yang dipakai untuk menggambarkan kemampuan untuk terkoneksi kan ke server dan menjalankan quey read-only sementara server sedang dalam recovery atau mode standby.
- synchronous_commit = Opsi yang memungkinkan transaksi antara server Database dan Replica selesai lebih cepat. Disini saya mengatur valuenya Local, karena saya membuat sinkronisai antara master dan slave secara local.
3. Cari baris " archive_mode " lalu uncomment baris tersebut dan atur valuenya menjadi on. Dan pada baris " archive_command " uncomment baris tersebut juga dan atur valuenya menjadi perintah yang digunakan untuk pengarsipan.
Note :
- archive_mode = Sebuah opsi yang dipakai sebagai pengaturan mode arsip, Ketika archive _mode di aktifkan ( ON ). WAL segmen akan dikirim ke penyimpanan arsip dengan mengatur archive _command.
- archive_command = Sebuah command yang di pakai untuk mengarsip logfile segmen.
- Maksud %p dalam string digantikan oleh nama tujuan dari file yang akan di arsipkan dan %f di ganti hanya dengan nama file.
4. Cari baris " max_wal_senders " lalu uncomment baris tersebut dan ubah valuenya menjadi 2. Kenapa menjadi 2 ? Karena disini saya hanya mempunyai 2 server, yaitu Master dan Slave. Dan Uncommet juga baris " wal keep segements " dan saya mengaturnya menjadi 10. Wal keep segments ini ialah besaran logfile segments. satuannya ialah MB.
5. Cari lagi baris " synchronous_standby_names " lalu uncomment baris tersebut dan atur valuenya sesuai dengan nama hostname pada Server Slave ( Database Replication ).
6. Selanjutnya kita edit file "pg_hba.conf " .
7. Cari script seperti yang sudah tandai dibawah. Untuk " Local " sesuaikan seperti bawah. Lalu untuk host pada bagian replication, untuk host pertama atur dengan ip loopback. Lalu untuk host ke 2 dan 3 atur sesuai dengan IP Server Master dan Slave. Untuk methodnya atur MD5.
8. Sekarang restart dan enable service postgresql nya agar konfigurasi yang baru bisa berjalan.
9. Sekarang masuk ke database postgres.
10. Buat user untuk replica berserta passwordnya juga.
Server Node 1 ( Slave )
1. Pindah ke posisi Server Slave, stop service postgresql nya.
2. Lalu pindah ke direktori /var/opt/rh/rh-postgresql95/lib/pgsql/data/.
3. Setelah itu remove semua file yang ada pada direktori tersebut.
4. Sekarang masuk ke postgres nya. Lalu lakukan sinkronisasi dari server slave ke server master. Jalankan perintah berikut " pg_basebackup -h ( IP Address Server Master ) -U ( user replica ) -D /var/opt/rh/rh-postgresql95/lib/pgsql/data/ -P --xlog "
5. Selanjutnya kita edit konfigurasi postgresql.conf.
6. Cari baris " hot_standby " uncomment baris tersebut dan atur valuenya menjadi " on ",
7. Lalu copy file " recovery.conf.sample ", kemudian ubah nama file itu menjadi " recovery.conf ".
8. Sekarang edit file " recovery.conf " yang tadi.
9. Cari baris " restore_command " lalu uncomment baris tersebut. Command ini merupakan perintah shell yang dipakai untuk mengambil segmen file wal yang di arsipkan. Pada command ini ada scp ( secure copy ) dan dibelakangnya di ikuti oleh IP yang ada di Server Master dan tujuan pada direktori mana file tersebut di letakan.
10. Cari baris " standby_mode " lalu uncomment baris tersebut dan atur menjadi on.
11. Sekarang cari dan uncomment baris " primary_conninfo ". Command ini digunakan untuk menentukan string koneksi yang akan dipakai agar Server Master dan Slave terhubung.
Note :
- host= 192.168.43.111 = IP Address dari Server Master
- port=5432 = Port yang dipakai oleh postgresql
- user=replica = User Replication
- password=adhi = password dari user replica.
- application_name=Attabiq-Node1 = Hostname dari si Server Slave.
12. Sekarang jalankan lagi service postgresql yang sebelumnya kita matikan.
13. Masuke postgres dan cek apakah Server Master dan Slave sudah terhubung atau belum.
Client
1. Pindah ke posisi client, buka browser pada client lalu buka domain Server Master dengan di ikuti /phpPgAdmin . Setelah itu login dengan user yang ada.
2. Untuk uji cobanya, saya membuat table pada database. Untuk tablenya terserah seperti apa.
3. Cek pada list table untuk memastikan table yang kita buat tadi sudah ada.
4. Sekarang buat domain pada Server Slave dengan di ikuti /phpPgAdmin, lalu login dengan user yang ada.
5. Pastikan kalau table yang kita buat tadi di Server Master ada di Server Slave.
Sekian dari saya
Mohon maaf apabila ada kesalahan
Terima Kasih
0 komentar: