9.3 Replication Settings On Postgresql

Hasil gambar untuk postgresql 

Assalamualaikum Wr Wb 

Pada kesempatan kali ini saya akan melanjutkan materi sebelumnya dari database yaitu konfigurasi database replication pada postgresql

Database Replication itu apa sih??

seperangkat teknologi yang digunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasikan antar database untuk menjaga konsistensi. Dengan replikasi, data dapat didistribusikan ke lokasi yang berbeda dan pengguna yang jauh melalui LAN, WAN, Dial-up Connection, wireless connections, dan internet.

Tujuan dibuatnya Database Replication adalah agar Server bersifat redudant, jadii ketika salah satu server mati maka akan ada Server pengganti lainnya. Selain itu, Database Replication ini juga bisa digunakan sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan DDOS atau yang lainnya.

Konfigurasi Server Database 

1. pertama, kita buat subdomain untuk server db replication terlebih dahulu, caranya dengan mengedit forward dns.



 2. Edit juga file reverse dns nya.



 3. setelah itu kita restart service named agar konfigurasi dns yang sudah dilakukan dapat berjalan.


4. kita cek subdomain yang baru ditambahkan dengan perintah dig nama domain 


5. selanjutnya, edit file konfigurasi postgresql yaitu postgresql.conf yang terletak pada /var/opt/rh/rh-postgresql95/lib/pgsql/data/


6.Lalu ,uncomment wal_level yang terletak di line 73, setelah itu atur optionnya menjadi hot_standby. Kemudian Uncomment juga pada synchronous_type, dan ubah optionnya menjadi local


 keterangan : 
  • Write-Ahead Logging (WAL) adalah Metode standar untuk memastikan integritas data. Konsep WAL adalah bahwa perubahan pada file data (di mana tabel dan indeks berada) harus ditulis hanya setelah perubahan tersebut dicatat, yaitu setelah catatan log yang menjelaskan perubahan telah terdapat pada penyimpanan permanen. Wal_level menentukan berapa banyak informasi yang ditulis ke WAL. Dan disini saya mengaturnya menjadi Hot_standby. Hot Standby merupakan istilah yang digunakan untuk menggambarkan kemampuan untuk terhubung ke server dan menjalankan query read-only sementara server sedang berada dalam recovery arsip atau mode standby.
  • synchronous_commit (synchronous replication) adalah opsi yang memungkinkan transaksi antara server DataBase dan Replica selesai lebih cepat. Dengan synchronous commit ini, penundaan replikasi secara langsung mempengaruhi waktu penyelesaian transaksi pada master, dan dengan synchronous commit ini, master dapat melanjutkan dengan kecepatan penuh. Synchronous commit menjamin bahwa data ditulis ke setidaknya dua node sebelum pengguna atau aplikasi diberitahu bahwa transaksi telah dilakukan. Disini saya mengaturnya value nya menjadi local, karena saya hanya membuat sinkronisasi antara master dan slave (local)
 7. setelah itu, uncomment syntak archive_mode, lalu atur optionnya menjadi on. Setelah itu uncomment syntak archive_command dan atur optionnya menjadi command atau perintah yang digunakan untuk pengarsipan.

 keterangan :
  • archive_mode adalah opsi yang digunakan sebagai pengaturan mode arsip, Ketika archive_mode diaktifkan, WAL segmen dikirim ke penyimpanan arsip dengan mengatur archive_command. archive_mode tidak dapat diaktifkan saat wal_level diatur menjadi minimal.
  • archive_command merupakan command yang digunakan untuk mengarsip logfile segmen
  • %p dalam string digantikan oleh nama path dari file yang akan diarsipkan, dan %f diganti hanya dengan nama file.
8. masih di file yang sama ,lalu disini kita uncomment syntak max_wal_sender. Max_wal_sender ini digunakan untuk menuntukan jumlah koneksi maksimum dari standby server. karena disini saya hanya mempunyai dua server, yaitu master dan slave, maka disini saya mengatur valuenya menjadi 2. Kemudian uncomment juga pada baris wal_keep_segments. Wal keep segments ini merupakan besar logfile segments, satuannya MB.Disini saya mengaturnya menjadi 10



 9. setelah itu, uncomment pada baris synchronous_standby_names, baris ini merupakan pendefinisian dari nama server standby mana yang akan akan digunakan untuk Database Replication. Nama yang dimaksud yaitu berupa hostname


10. kemudian, edit file dibawah ini 


11. cari syntaks seperti gambar dibawah ini. edit file dan uncomment setiap local host yang ada, kemudian edit yang sebelumnya masih user postgres, disini kita ubah menjadi replica, karena pada tahap selanjutnya kita akan membuat user replica. Disini kita lakukan pengeditan pada ketiga host, 1 host dengan IP loopback, dan 2 host lainnya merupakan IP dari server master maupun slave (Server DB dan Server DB Replica), Dan juga, atur semua method host nya menjadi md5. Sedangkan pada baris local biarkan seperti default, kita cukup mengganti nama user serta uncomment syntaknya saja.


12. kemudian restart service postgresql agar konfigurasi nya dapat berjalan


13. setelah itu, kita masuk ke shell postgres lalu buat user beserta passwordnya seperti ini


Konfigurasi Node 1 (Server DB Replication)


1. pertama, kita stop terlebih dahulu service postgresql nya.


2.  dan masuk kedirektori /var/opt/rh/rh-postgresql95/lib/pgsql/data dengan menggunakan perintah


  remove semua file yang ada pada direktori tersebut dengan perintah
 

3. selanjutnya kita masuk ke shell postgresql, Kemudian lakukan sinkronisasi dari server node1 ini ke server master database

4.  edit file postgresql.conf 


5.  kita mengaktifkan hot_standby nya dengan cara uncomment pada baris tersebut, kemudian atur optionnya menjadi on.


6.  setelah itu, copy file dan ubah nama seperti ini


7.  lalu edit file recovery.conf yang sudah dicopy tadi.



8.  lalu cari dan uncomment syntak restore_command


9. lalu Standby mode pada slave dengan cara uncomment pada baris standby_mode dan ubah optionnya menjadi on.



  
Standy mode digunakan untuk menentukan apakah akan memulai server PostgreSQL sebagai standby. Jika parameter ini aktif, server tidak akan berhenti untuk merecovery saat akhir WAL yang diarsipkan tercapai, namun akan terus mencoba melanjutkan recovery (pemulihan) dengan mengambil segmen WAL baru menggunakan restore_command dan atau dengan menghubungkan ke server utama seperti yang ditentukan oleh pengaturan primary_conninfo.

10. cari dan uncomment syntak primary_conninfo, Primary conninfo ini digunakan menentukan string koneksi yang akan digunakan agar server standby terhubung dengan server primary (server master db).  Edit baris tersebut menjadi seperti yang sudah saya tandai pada gambar dibawah 


 Keterangan :
  • host=192.168.0.16 merupakan pendefinisan dari server primary
  • port=5432 merupakan port yang digunakan postgresql untuk replikasi
  • user=replica merupakan user replikasi
  • password=12345 merupakan password dari user replika
  • application_name=node1 merupakan hostname dari server master db

11. kita start dan enable service postgresql nya
 


Konfigurasi Server Master DB 

1. Pertama, kita masuk ke shell postgres, Setelah itu lakukan pengecekan, apakah antara server master dengan slave sudah berhasil tersinkronisasi atau belum.


Verifikasi Client 

1. kita mengakses database melalui web dengan cara ketikan nama domain yang diakhiri dengan /phpPgAdmin/ lalu login dengan user name dan password dengan benar.



2. kemudian kita membuat skema baru caranya, klik create schema.


3. tentukan namanya sesuka kalian, kemudian klik create 


4. Sekarang kita login ke server slave nya atau replicanya yaitu node 1


 5. dan ternyata yang kita buat di server master ada juga di slave , berarti konfigurasinya berhasil !!!

Oke cukup sekian postingan kali ini, semoga bermanfaat....

Wassalamualaikum Wr Wb

Komentar

Postingan populer dari blog ini

8.16 Konfigurasi https Pada Nginx

macam macam konektor pada psu dan kode warna kabel pada psu

Tutorial Konfigurasi Trixbox Dan Mengakses pada client