tutorial postgresql 9.6 pada centos 7 part 1 (master – slave)

1
1489

selamat sore sobat sekolahlinux, sudah lama tidak menulis artikel kali ini saya coba membuat tutorial tentang postgresql, kenapa postgresql? karena saat ini saya sendiri memang sedang menangani cluster untuk web-apps java dan juga postgresql, oke tanpa langsung berpanjang-panjang lagi ini dia tutorialnya.

pertama saya akan memberitahukan topologinya:

  • node1 (master): 192.168.10.100
  • node2 (slave): 192.168.10.200

jalankan perintah install postgresql 9.6 pada node1 & node2

#install repo postgresql 9.6 pada centos 7
rpm -Uvh https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

#install postgresql 9.6
yum install postgresql96-server postgresql96

 

NODE1 MASTER

jalankan perintah dibawah setup awal postgresql

/usr/pgsql-9.6/bin/postgresql96-setup initdb

lalu buka file postgresql.conf

vim /var/lib/pgsql/9.6/data/postgresql.conf

pastikan paramater-paramater dibawah di uncomment dan values nya sama seperti dibawah

listen_addresses = '*'
wal_level = hot_standby
synchronous_commit = local
archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/9.6/archive/%f'
max_wal_senders = 2
wal_keep_segments = 10
synchronous_standby_names = 'sekolahlinux'

jika sudah save, lalu selanjutnya create folder dibawah ini

mkdir -p /var/lib/pgsql/9.6/archive

jika sudah save, lalu selanjutnya buka file pg_hba.conf

host    replication     replica          127.0.0.1/32            password
host    replication     replica          192.168.10.100/32            password
host    replication     replica          192.168.10.200/32            password

lalu jika sudah jalankan service postgresql

service postgresql-9.6 restart
chkconfig postgresql-9.6 on

jika sudah masuk menjadi user postgres dengan perintah dibawah

su - postgres

lalu create user untuk replicationnya, masukkan password sesuai yang kalian inginkan untuk tutorial kali ini saya set dengan password berikut: s3kolahlinux

createuser --replication -P replica

lalu set owner untuk memastikan rule yang kalian edit tadi ownernya adalah postgres

chown -R postgres:postgres /var/lib/pgsql

jika kalian memasang iptables jangan lupa untuk dibuka akses ke port 5432

 

NODE2 SLAVE

masuk kedalam user postgres

su - postgres

lalu jalankan perintah dibawah untuk clone database yg ada master, jika diminta password maka masukan password yang tadi kita buat untuk user replica, pada tutorial kali ini saya membuat password: s3kolahlinux

pg_basebackup -h 192.168.10.100 -U replica -D /var/lib/pgsql/9.6/data -P --xlog

lalu buka file postgresql.conf

vim /var/lib/pgsql/9.6/data/postgresql.conf

pastikan paramater dibawah di uncomment dan values nya sama seperti dibawah

hot_standby = on

jika sudah save lalu selanjutnya copy file recovery.conf.sample dengan perintah dibawah

cp /usr/pgsql-9.6/share/recovery.conf.sample /var/lib/pgsql/9.6/data/recovery.conf

jika sudah buka file recovery.conf hasil copy perintah diatas

vim /var/lib/pgsql/9.6/data/recovery.conf

pastikan paramater dibawah di uncomment dan values nya sama seperti dibawah

restore_command = 'scp 192.168.10.100:/var/lib/pgsql/9.6/archive/%f %p'
standby_mode = on
primary_conninfo = 'host=192.168.10.100 port=5432 user=replica password=s3kolahlinux application_name=sekolahlinux'

jika sudah save, lalu set owner untuk memastikan rule yang kalian edit tadi ownernya adalah postgres

chown -R postgres:postgres /var/lib/pgsql

jika sudah exit dari mode user postgres dan jadi root kembali

lalu jika sudah jalankan service postgresql

service postgresql-9.6 restart
chkconfig postgresql-9.6 on

 

NODE2 MASTER

masuk sebagai user postgres

su - postgres

lalu jalankan perintah dibawah

psql -c "select application_name, state, sync_priority, sync_state from pg_stat_replication;"

jika master-slave kalian sudah berjalan makan akan tampil hasil seperti dibawah ketika kalian menjalankan perintah diatas

 application_name |   state   | sync_priority | sync_state
------------------+-----------+---------------+------------
 sekolahlinux          | streaming |             1 | sync
(1 row)

sekian tutorial part1 kali ini yg membahas master-slave untuk part3 nanti kita akan membahas tentang bagaimana cara master-slave dengan repmgr

  • berikut ini beberapa command optional untuk reset password user pada db postgresql
psql -c "alter user postgres with password '123456'"

terimakasih sudah membaca, jangan lupa di praktekan ya 🙂 semoga bermanfaat

1 COMMENT