Assalamu'alaikumWarahmatullahi Wabarakatuh.
Alhamdulillah untuk lab replication 9.3 ini udah terselesaikan. Pada lab kali ini kita menyinggung masalah Database Replication. Apa itu database replication?
Database Replication adalah suatu metode yang digunakan ntuk menyalin dan mendistribusikan data dari satu database ke database yang lainnya. Setelah itu, replication ini dimaksudkan untuk mensinkronasikan antar database. Tujuan dibuatnya replication ini adalah bersifat redudant, agar ketika satu server mati, masih ada server yang lain sebagai penggantinya, selain itu juga sebagai backup dari suatu database untuk mengantisipasi kehilangan data akibat serangan hacker atau faktor lainnya. Untuk mempersingkat waktu kita langsung masuk ke tahap konfigurasinya ya. Bismillah.
Konfigurasi Server
1. Pertama-tama kita edit konfigurasi untuk postgresql yaitu yang berada pada file postgresql.conf yang terletak di /var/opt/rh/rh-postgresql95/lib/pgsql/data/
2. Uncoment / hapus tanda pagar yang ada pada syntax wal_level sebelumnya, kemudian kita atur optionnya menjadi hot_standby. uncoment pula pada syntax synchronous_commit dan atur valuenya menjadi local.
Write-Ahead Logging (WAL) merupakan suatu metode standar untuk memastikan integritas data. Cara kerja konsep WAL ini dengan cara : perubahan pada file data harus ditulis hanya setelah perubahan tersebut dicatat.
Write-Ahead Logging (WAL) merupakan suatu metode standar untuk memastikan integritas data. Cara kerja konsep WAL ini dengan cara : perubahan pada file data harus ditulis hanya setelah perubahan tersebut dicatat.
wal_level adalah untuk menentukan berapa banyak informasi yang ditulis ke WAL.
Hot Standby dikenal sebagai suatu istilah yang untuk menggambarkan kemampuan untuk dapat terhubung ke server dan menjalankan query read-only sementara server sedang berada dalam recovery arsip atau mode standby.
synchronous_commit (synchronous replication) ialah suatu opsi yang memungkinkan transaksi antara server master dan server slave / Replica selesai lebih cepat.
Synchronous commit di sini saya mengatur value / nilainya menjadi local, karena saya membuat sinkronasi atar master dan slave dalam lingkup lokal. Synchronous commit ini menjamin bahwa data ditulis ke setidaknya dua node sebelum pengguna atau aplikasi diberitahu bahwa transaksi telah dilakukan.
3. Kemudian kita scroll lagi kebawah dan carilah syntax archive_mode dan archive_command uncoment / hapus tanda pagar pada kedua syntax tersebut. kemudian aturlah option untuk archive_mode menjadi on dan aturlah archive_command seperti yang sudah saya beri tanda di bawah ini.
Keterangan :
archive mode adalah opsi yang digunakan sebagai pengaturan mode arsip, Ketika archive_mode diaktifkan (on), WAL segmen dikirim ke penyimpanan arsip dengan mengatur archive_command.
archive command ialah command yang digunakan untuk mengarsip logfile segmen.
% p dalam string digantikan oleh nama path dari file yang akan diarsipkan,
% f diganti hanya dengan nama file.
archive mode adalah opsi yang digunakan sebagai pengaturan mode arsip, Ketika archive_mode diaktifkan (on), WAL segmen dikirim ke penyimpanan arsip dengan mengatur archive_command.
archive command ialah command yang digunakan untuk mengarsip logfile segmen.
% p dalam string digantikan oleh nama path dari file yang akan diarsipkan,
% f diganti hanya dengan nama file.
4. Cari dan hapuslah tanda pagar pada syntak max_wal_sender. Max wal sender ini difungsikan untuk menuntukan jumlah koneksi maksimum dari standby server. pada lab kali in saya memiliki 2 server, yakni 1 server yang berperan sebagai master, dan 1 server lagi yang berperan sebagai slave.
uncomment / hapus juga tanda pagar yang ada pada syntax wal_keep_segments. Wal keep segments ini merupakan besar logfile segments, satuannya MB. Pada contoh ini saya mengaturnya menjadi 10.
5. Cari dan uncomment pada baris synchronous_standby_names, kita isikan dengan hostname dari server slave yang akan di jadikan database replication. baris ini merupakan pendefinisian dari nama server standby manakah yang akan akan digunakan untuk Database Replication.
6. Selanjutnya kita lakukan pengeditan pada file pg_hba.conf yang terletak di /var/opt/rh/rh-pgsql/data/pg_hba.conf
7. Cari syntak yang sudah saya tandai pada gambar dibawah ini, Uncomment setiap local host yang ada, kemudian edit yang tadinya masih dengan keterangan post gres kita ubah menjadi replica, karna selanjutnya kita akan membuat user replica.
Sekarang kita lakukan pengeditan. Pada baris local biarkan seperti default, cukup ganti nama user serta uncomment syntaknya saja. pada ketiga host, untuk host yang pertama, 1 isikan dengan ip loopback, dan 2 user sisanya isikan dengan ip dari sever master maupun slave (server db dan server db replica), dan jangan lupa ketiganya atur methodnya menjadi md5.
8. Agar service pada postgresql dapat berjalan, kita lakukan restart pada postgresqlnya, untuk syntaknya perhatikan gambar di bawah ini.
9. Setelah kita menyelesaikan konfigurasi, sekarang kita akan mulai membuat user beserta password untuk replikasi. Untuk kita kita masuk terlebih dahulu ke shell postgres-nya, dengan perintah su - postgres.
10. Buatlah user replica beserta password untuk replikanya, untuk perintahnya bisa dilihat pada gambar di bawah ini ya.
11. Sekarang kita edit file forward-nya untuk menambahkan node1, untuk itu lakukan perintah seperti pada gambar di bawah ini ya.
12. Tambahkan node1 dengan ip address yang digunakan adalah ip server centos masternya.
13. Selanjutnya kita edit pula pada bagian reverse-nya. untuk itu kita lakukan perintah seperti pada gambar di bawah ini.
14. Tambahkan node1 dengan keterangan ipnya, dan juga tambahkan ip address beserta keterangan addressnya, untuk lebih jelasnya perhatikan gambar yang sudah saya beri tanda pada gambar di bawah ini.
15. Agar konfigurasi yang baru dapat di perbarui, dan service dapat berjalan, kita lakukan restart.
Konfigurasi Node1 (Server Replica)
1. Pertama, lakukan perintah stop untuk postgresql-nya terlebih dahulu, untuk perintahnya perhatikan pada gambar di bawah ini ya.
2. Selanjutnya, remove semua file-file yang ada pada directory /var/opt/rh/rh-postgresql/lib/pgsql/data/ untuk perintah yang dijalankan perhatikan pada gambar di bawah ini ya.
3. Sekarang kita masuk ke shel postgresqlnya dengan perintah su.
Keterangan :
pg_basebackup digunakan untuk mengambil base backup cluster database PostgreSQL yang sedang berjalan. Pg_basebackup digunakan untuk membuat salinan biner dari file cluster database, sambil memastikan sistem dimasukkan ke dalam dan keluar dari mode backup secara otomatis
-h 192.168.0.108 ialah pendifisian bahwa base bacup cluster database berasal dari host 192.168.0.108 (ip server master db)
-U merupakan pendifisian dari user.
-D /var/opt/rh/rh-postgresql95/lib/pgsql/data/ ialah pendefinisan pada Directory mana file backup cluster database tersebut.
-P ialah pendifinisian dari Password
--xlog digunakan untuk membuat catatan terhadap semua log yang dihasilkan selama backup
5. Keluar dari shell postgres.
6. Lanjut untuk mengedit file konfigurasi postgresql pada file postgresql.conf yang letaknya ada di dalam directory var/opt/rh/rh-postgresql95/lib/pgsql/data/
7. Pada konfigurasi server master, syntak wal_level kita atur menjadi hot_standby. Untuk itu pada server slave ini kita harus menyalakan hot_standby-nya dengan cara uncomment pada baris tersebut, kemudian atur optionnya menjadi on.
8. Kenudian sekarang kita copy-kan file recovery.conf.sample, kemudian ubah nama filenya menjadi recovery.conf
9. Setelah kita mengcopy dan merubah nama filenya, sekarang kita akan mengedit file tersebut untuk itu kita masukan perintah seperti pada gambar di bawah ini.
10. Carilah dan uncommand / / hapus tanda pagar pada syntak restore_command.
keterangan :
Pada command ini terdapat perintah scp (secure copy) dan dibelakangnya diikut oleh ip dari server master serta tujuan pada directory mana file tersebut diletakan, hal tersebut mengartikan segmen file WAL yang diarsipkan disalin dari host tersebut ke destination directory yang telah ditentukan, Sedangkan maksud dari secure copy in adalah, proses penyalinannya secara secure, via ssh.
Restore commandmerupakan perintah shell yang berfungsi untuk mengambil segmen file WAL yang diarsipkan.
Parameter ini dibutuhkan untuk pemulihan arsip, tapi opsional untuk streaming replikasi.
Setiap% f dalam string diganti dengan nama file yang akan diambil dari arsip,
setiap% p diganti dengan nama tujuan jalur salin pada server.
11.Carilah syntak standby_mode uncommand pada tanda pagar di depan kalimat kemudian kita atur optionnya menjadi on. standby_mode ini difungsikan untuk mengentukan apakah akan memulai server postgreSQL sebagai standby atau tidak. Jika parameter ini aktif, server tidak akan berhenti untuk me-recovery saat akhir wal yang diarsipkan tercapai, namun akan selalu mencoba melanjutkan pemulihan dengan mengambil segmen wal baru menggunakan restore_command aau dengan menghubungkan ke server utma seperti yang ditentukan oleh pengaturan primary_conninfo.
12. Cari dan uncomment syntak primary_conninfo, Primaryconninfo ini difungsikan untuk menentukan string koneksi yang akan digunakan agar server standby terhubung dengan server primary (server master). tambahkan / editlah sama sepertti yang sudah saya beri tanda pada gabar di bawah ini ya.
Keterangan :
host=192.168.0.108 merupakan penjabaran dari server primary.
port=5432 yaitu port yang digunakan postgresql.
user=replica merupakan user replikasi.
passwd=trihandika merupakan password dari user replika.
application_name=node1-fitrahka merupakan hostname dari server master db.
1. Pertama-tama kita masuk ke shell postgres-nya terlebih dahulu, dengan perintah su - postgres selanjutnya kita akan lakukan pengecekan, apakah server master dan slave sudah berhasil tersinkronisasi atau belum, dengan mengetikkan perintah seperti yang sudah saya beri tanda di bawah ini ya.
Nah dari gambar di bawah ini terlihat bahwa antar server master dan slavenya telah tersinkronasi.
2. Sekarang kita buat User baru beserta password untuk databasenya. jangan lupa untuk membuatnya dengan super user ya, akrena kalau dengan user biasa tidak akan bisa untuk membuat database.
Verivikasi Client
1. Lakukan pengetesan pada client dengan cara mengakses database dengan browser menggunakan phpPgAdmin. Login dengan user dan password yang telah dibuat.
2. Sekarang kita coba membuat database baru sebagai pengujian, untuk itu Create Database
3. Karena hanya sebagai pengujian, ini bersifat bebas untuk di isikan sesuai dengan keinginan atau kebutuhan, kemudian klik Create untuk menyimpan dan membuat database baru.
4. Dan terlihat bahwa database baru yang kita buat telah terdaftar.
5. Sekarang kita coba akses server slavenya, yaitu node1.fitrahanugrah.com/phpPgAdmin
6. Lakukan pengecekan apakah database yang telah kita buat sebelumnya pada server master juga terdaftar pada slavenya ataukah tidak. dan dari gambar di bawah ini terlihat bahwa database yang kita buat terdapat pada node1.
Mungkin sekian yang dapat saya sampaikan, semoga bermanfaat. kurang lebihnya mohon maaf. Wassalamu'alaikum Warahmatullahi Wabarakatuh.
0 komentar:
Posting Komentar