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
Terimakasih, artikelnya sangat menarik dan bermanfaat. Jika anda ingin membaca artikel jurnal tentang linux dari mahasiswa/i Universitas Gunadarma, silahkan kunjungi website ini http://linux.blog.gunadarma.ac.id/