Konfigurasi PostgreSQL Replication di CentOS 7


Konfigurasi PostgreSQL Replication di CentOS 7 - Hallo sobat oprekers, kali ini www.dimasrio.com akan menjelaskan bagimana cara melakukan konfigurasi postgresql replication (master - slave) di centos 7. Replication merupakan salah fitur yang disediakan postgres untuk membuat database replika (mirror) dengan melakukan proses copy dari satu database master ke database lainnya. 


Konfigurasi PostgreSQL Replication 

Pada contoh kasus ini saya menggunakan 2 buah host sebagai berikut:

Host Master:
Hostname : node1.centz7zone.net
IP : 192.168.137.101

Host Slave:
Hostname : node2.centz7zone.net
IP : 192.168.137.102

Step 1 - Set hostname

Set hostname pada masing-masing server node1 dan node2.
nano /etc/hosts
192.168.137.101    node1.centz7zone.net   node1
192.168.137.102    node2.centz7zone.net   node2

Step 2 - Install PostgreSQL 

Install atau compile postgresql pada masing-masing server node1 dan node2.
Install PostgreSQL Source di CentOS 7 

Step 3 - Konfigurasi DB Master

Pada tahap ini kita akan melakukan setup pada database master dengan ip 192.168.137.101. 
Buat sebuah role dengan nama replicator. User ini nantinya akan digunakan untuk melakukan replikasi.
su - postgres
psql
CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'password';
Output :



Selanjutnya rubah berberapa option pada postgresql.conf.
nano /opt/pgdata/postgresql.conf 
listen_addresses = '192.168.137.101'
wal_level = hot_standby
archive_mode = on
archive_command = 'cp -i %p /opt/pgdata/archive/%f'
max_wal_senders = 3
wal_keep_segments = 8
Buat direktory untuk menyimpan hasil archive.
mkdir /opt/pgdata/archive/ 
chown postgres. /opt/pgdata/ -R
Setelah selesai konfigurasi pada postgresql.conf, selanjutnya kita buat koneksi untuk role replication pada pg_hba.conf.
host all all 192.168.137.0/24 md5

local replication postgres trust
host replication replicator 192.168.137.102/32 md5
Sampai disni konfigurasi pada master sudah selesai.

Step 4  - DB Slave Replication

Matikan service postgres sebelum konfigurasi pada slave.
 systemctl stop postgresql
Backup instance yang sudah ada.
mv /opt/pgdata/ /opt/pgdata_original
mkdir /opt/pgdata
chown postgres. /opt/pgdata -R
chmod 0700 /opt/pgdata -R
Selanjutnya copy instance dari server master menggunakan pg_basebackup.
su - postgres
pg_basebackup -h 192.168.137.101 -D /opt/pgdata -U replicator -v -P
Output :

Sesuaikan konfigurasi pada postgresql.conf sebagai slave.
nano /opt/pgdata/postgresql.conf
listen_addresses = '192.168.137.102'
wal_level = hot_standby
hot_standby = on
max_wal_senders = 3
wal_keep_segments = 8
Masih di dalam user postgres, buat sebuah file recovery.conf.
nano /opt/pgdata/recovery.conf
Tambahkan perintah berikut pada recovery.conf.
standby_mode = 'on'
primary_conninfo = 'host=192.168.137.101 port=5432 user=replicator password=password'
restore_command = 'cp //opt/pgdata/archive/%f %p'
trigger_file = '/tmp/postgresql.trigger.5432' 
chown postgres. /opt/pgdata/recovery.conf
Sampai di sini konfigurai slave sudah selesai.

Untuk memastikan bahwa konfigurasi sudah berhasil jalankan perintah berikut pada db master.
select * from pg_stat_replication;
Output :


Step 5 - Testing

Setelah semua konfigurasi selesai, langkah terakhir adalah testing. Untuk memastikan bahwa database replication sudah berjalan dengan baik buatlah sebuah database baru pada master. Pastikan pada database slave juga terbuat otomatis.



Video Tutorial :


Demikian tutorial singkat kali ini mengenai konfigurasi postgresql replication di centos 7. Semoga bermanfaat bagi kita semua dan selamat mencoba..!!!

2 komentar


EmoticonEmoticon