9.3 Replication Settings On 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)
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.
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
Posting Komentar