IT Bootcamp

Belajar Mengenai Jaringan, Server, dan Website.

LAB 9.3. Konfigurasi Database Postgresql Replication CentOS7

Konsep Dasar

Replikasi database merupakan suatu metode atau teknik yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lainnya. Kemudian database tersebut akan saling melakukan sinkronisasi antar database untuk menjaga konsistensi. Dengan adanya replikasi database ini, data dapat didistribusikan ke lokasi yang berbeda dan pengguna yang jauh melalui LAN, WAN, Dial-up Connection, wireless connections, dan internet.

Topologi

Topologi

Konfigurasi Server Controller (Penambahan Domain)

1. Sebelum memulai melakukan konfigurasi replikasi database, terlebih dahulu kita buat domain atau identitas untuk server nodenya. Domain atau identitas tersebut digunakan untuk mengidentifikasi / sebagai identitas dari server nodenya. Untuk membuat domain untuk server node, lakukan editing pada file forward di server controller. Kemudian tambahkan identitas dengan nama node dan tambahkan juga ip address server nodenya.
Edit file forward


2. Setelah melakukan editing pada file forward, lakukan juga editing pada file reverse. Kemudian tambahkan identitas untuk server nodenya.
Edit file reverse


3. Setelah selesai melakukan editing pada file forward dan reverse, agar domain atau identitas server node yang telah ditambahkan tadi dapat berjalan, maka lakukan restart pada named.
Restart named


4. Kemudian cek domain atau identitas server node menggunakan perintah dig node.gilang.net. Maka akan muncul identitas server node pada question section dan answer section.
Mengecek domain

Konfigurasi Server Controller

1. Setelah melakukan konfigurasi domain, yang harus anda lakukan sekarang adalah mengedit file konfigurasi postgresql yaitu postgresql.conf yang terletak di /var/opt/rh/rh-postgresql95/lib/pgsql/data/ Terlebih dahulu buka file tersebut menggunakan editor nano atau vi.
Membuka file postgresql.conf

Cari script listen_addresses kemudian uncommand (hilangkan tanda #) pada listen_addresses, setelah itu atur optionnya menjadi * agar semua host dapat mengakses postgresql.
Editing file postgresql.conf

Cari script wal_level kemudian uncommand (hilangkan tanda #) pada wal_level, setelah itu atur optionnya menjadi hot_standby.
Editing file postgresql.conf

Cari script synchronous_commit kemudian uncommand (hilangkan tanda #) pada synchronous_commit, dan ubah optionnya menjadi local.
Editing file postgresql.conf

Scroll kebawah atau cari script archive_mode dan archive_command, kemudian uncommand syntax archive_mode, kemudian atur optionnya menjadi on. Setelah itu uncommand juga pada syntax archive_command dan atur optionnya menjadi cp %p /var/opt/rh/rh-postgresql95/lib/pgsql/archive/%f.
Editing file postgresql.conf

Scroll kebawah lagi atau cari script max_wal_senders dan script max_keep_segments, kemudian uncommand syntax max_wal_sender. Max wal sender ini digunakan untuk menuntukan jumlah koneksi maksimum dari standby server. karna disini saya hanya mempunyai dua server, yaitu master dan slave, maka disini saya mengatur valuenya menjadi 2 (karena jumlah servernya ada 2). Kemudian uncommand juga pada baris wal_keep_segments. Wal keep segments ini merupakan besar logfile segments, satuannya MB. Pada contoh ini saya mengaturnya menjadi 10.
Mengedit file postgresql.conf

Masih dikonfigurasi file postgresql.conf, cari script synchronous_standby_names kemudian uncommand pada baris synchronous_standby_names, baris ini merupakan pendefinisian dari nama server standby manakah yang akan akan digunakan untuk Database Replication. Nama yang dimaksud yaitu berupa hostname. Disini yang kita jadikan sebagai replika adalah server node, maka kita masukkan hostname dari server node.
Mengedit file postgresql.conf


2. Setelah melakukan editing pada file postgresql.conf, sekarang kita lakukan editing pada file pg_hba.conf yang terletak di direktori /var/opt/rh/rh-postgresql95/lib/pgsql/data/ Terlebih dahulu buka file tersebut menggunakan editor nano atau vi.
Membuka file pg_hba.conf

Cari syntax yang sudah saya tandai pada gambar dibawah ini, kemudian uncommand setiap local host yang ada, lalu edit yang tadinya masih user postgres, ubah menjadi replica (kecuali pada local). Lakukan pengeditan pada ketiga host, 1 host dengan ip loopback, dan 2 sisanya merupakan ip address dari server master (controller) dan server slave (node), dan jangan lupa atur methodnya menjadi md5. Sedangkan pada baris local biarkan seperti default (peer).
Mengedit file pg_hba.conf


2. Kemudian kita lakukan restart pada service postgresql agar file yang baru saja dikonfigurasi dapat berjalan. Aktifkan juga service postgresql.
Mengaktifkan service postgresql


3. Sekarang akses postgresql dengan masuk ke shell postgres kemudian buat user replikasinya beserta passwordnya.
Membuat user replika

Konfigurasi Server Node

1 Hal pertama yang harus kita lakukan adalah menonaktifkan terlebih dahulu service postgresql
[root@nodegilang ~]# systemctl stop rh-rhpostgresql95-postgresql
Kemudian pindah ke direktori /var/opt/rh/rh-postgresql95/lib/pgsql/data/ Setelah itu hapus semua file yang ada pada direktori /var/opt/rh/rh-postgresql95/lib/pgsql/data/ menggunakan command -rf * Lalu akses shell postgres dengan mengetikkan command su - postgres Setelah anda masuk ke shell postgres, lakukan sinkronisasi antara server master (controller) dan server slave (node). Kemudian anda akan diminta memasukkan password server node, masukkan password server node maka sinkronisasi yang dilakukan akan berhasil.
Melakukan sinkronisasi


2. Selanjutnya, edit file postgresql.conf yang terletak di /var/opt/rh/rh-postgresql95/lib/pgsql/data/
[root@nodegilang ~]# nano  /var/opt/rh/rh-postgresql95/lib/pgsql/data/postgresql.conf 
Cari script wal_level kemudian uncommand (hilangkan tanda #) pada wal_level lalu atur optionnya menjadi on.
Edit file postgresql.conf


3. Setelah itu, kita copy file recovery.conf.sample yang ada pada direktori /opt/rh/rh-postgresql95/root/usr/share/pgsql/, kemudian ubah nama file tersebut menjadi recovery.conf.
Melakukan copy file


4. Buka file recovery.conf hasil copy tadi menggunakan editor nano atau vi.
[root@nodegilang ~]# nano /var/opt/rh/rh-postgresql95/lib/pgsql/data/recovery.conf
Lalu edit file recovery.conf tersebut. Cari script restore_command kemudian uncommand (hilangkan tanda #) pada script tersebut lalu atur optionnya menjadi scp 192.168.0.20:/var/opt/rh/rh-postgresql95/lib/pgsql/archive/%f %p. Restore_command ini merupakan perintah shell yang digunakan untuk mengambil segmen file wal yang diarsipkan. Parameter ini diperlukan untuk pemulihan arsip, tapi opsional untuk streaming replikasi. Disini terdapat perintah scp (secure copy) dan diikuti oleh ip address dari server master db serta tujuan pada directory mana file tersebut diletakan, ini berarti segmen file wal yang diarsipkan, di salin dari host tersebut ke destinasi direktori yang telah ditentukan, Sedangkan maksud dari secure copy in adalah proses penyalinannya dilakukan secara secure, yaitu via ssh.
Mengedit file recovery.conf

Cari script standby_mode kemudian uncommand (hilangkan tanda #) pada script tersebut lalu ubah optionnya menjadi on.
Mengedit file recovery.conf

Cari script primary_conninfo kemudian uncommand (hilangkan tanda #) pada script tersebut, ubah optionnya menjadi host=192.168.0.20 port 5432 user=replica password=4sharedcom application_name=node. Primary_conninfo ini digunakan untuk menentukan string koneksi yang akan digunakan agar server standby terhubung dengan server primary (server master db). host=192.168.0.20 merupakan pendefinisan dari server primari.
port=5432 merupakan port yang digunakan postgresql untuk replikasi.
user=replica merupakan user replikasi.
password=4sharedcom merupakan password dari user replika.
application_name=node merupakan hostname dari server slave.
Pastikan service postgresql dan port 5432 telah ditambahkan pada firewall kedua server tersebut (server controller dan server node).
Mengedit file recovery.conf


5. Setelah konfigurasi file telah selesai, sekarang jalankan dan aktifkan kembali service postgresql.
Mengaktifkan service postgresql


6. Kemudian akses postgresql lalu cek sinkronisasi antar server master dan server slave. Pastikan sudah tersinkronisasi dengan baik (ditandai dengan munculnya hostname server node). 
Mengecek sinkronisasi

Verifikasi

1. Lakukan pengetesan pada client dengan cara mengakses database menggunakan web browser dengan phpPgAdmin. Disini kita gunakan domain utama terlebih dahulu, ketikkan gilang.net/phpPgAdmin. Klik PostgreSQL kemudian masukkan username dan password yang telah anda buat lalu untuk melakukan login menuju database, klik Login.
Mengakses database


2. Maka anda akan memasuki dashboard database. Disini kita coba membuat schemas. Klik Schemas kemudian masukkan nama schema yang ingin dibuat, pilih owner, lalu klik Create untuk membuat schemas. Disini saya membuat schemas dengan nama testing.
Mengakses database


3. Maka schema akan terbuat.
Mengakses database


4. Sekarang akses phpPgAdmin menggunakan domain server node pada client. Ketikkan node.gilang.net/phpPgAdmin. Lakukan login menggunakan username dan password yang anda buat.
Mengakses database


5. Kemudian anda akan masuk kedalam dashboard database. Lihat schema, maka disana akan terdapat schema yang dibuat pada domain utama. Seperti itulah replikasi, jadi saat kita membuat database atau mengkonfigurasi database pada domain yang satu, maka domain lainnya (replika) akan melakukan sinkronisasi terhadap domain tersebut.
Mengakses database


Demikianlah artikel pada kali ini jika terdapat kesalahan kata pada artikel yang anda baca, saya mohon maaf sebesar-besarnya. Jika anda masih kurang paham atau kurang mengerti akan artikel yang saya sampaikan, anda dapat mengetikkan keluhan anda melalui kolom komentar. Terima kasih.

Tidak ada komentar

Posting Komentar

Search Panel