Assalamualaikum Wr.Wb
Kali ini saya akan memposting tentang Lab 9.3 Cara Konfigurasi Database Replication dengan menggunakan PostegreSQL.
Sebelumnya Apa itu Database Replication?
Database Replication adalah suatu metode yang di gunakan untuk menyalin dan mendistribusikan data dari satu database ke database yang lain. Dan selanjutnya, mensinkronisasi antar database, sehingga konsistensi data dapat terjamin. Tujuan dibuatnya Database Replication ini adalah agar bersifat redudant, ketika salah satu server mati maka akan masih ada pengganti lainnya.
~ Konfigurasi Server DB ~
1. Yang pertama kali kita lakukan adalah menambahkan domain untuk node1 nya atau yang berperan sebagai slave di dalam folder forward.hani yang terdapat dalam directory /var/named/
2. Kemudian tambahkan script seperti gambar dibawah ini yang di beri warna hijau, disini kita menambahkan 1 domain yaitu node1.hanihikma.net dengan menggunakan ip 12.12.12.13.
3. Setelah itu kita akan melakukan pengeditan pada file reverse.hani yang terletak pada directory /var/named/
4. Selanjutnya ketikkan script seperti gambar dibawah ini yang sudah diberi tanda berwarna hijau, dimana kita akan menambahkan satu domain yaitu node1.hanihikma.net.
5. Selanjutnya restart service namednya supaya konfigurasi yang kita lakukan dapat berjalan dengan baik dan benar.
6. Lakukan pengetesan dengan mengetikkan perintah dig(domain yang di buat tadi).
7. Dan hasilnya seperti gambar dibawah ini yang menandakan kita telah berhasil manambahkan satu domain.
8. Kita akan melakukan pengeditan pada file konfigurasi postgresql yang terletak pada directory /var/opt/rh/rh-postgresql95/lib/pgsql/data/
9. Kemudian pada baris 59, kita uncomment (menghapus tanda pagar) pada listen_address dan mengubah valuenya menjadi *.
10. Uncomment wal_level, setelah itu atur optionnya menjadi hot_standby. Kemudian uncomment juga pada synchronous_type, dan ubah optionnya menjadi local.
- Write-Ahead Logging (WAL) adalah metode standar untuk memastikan integrasi data. Konsep WAL adalah bahwa perubahan pada file data/dimana tabel dan indeks berada harus ditulis hanya setelah perubahan tersebut dicatat, yaitu setelaj catatan log yang menjelaskan perubahan telah terdapat pada penyimpanan permanent. wal_level mentukan berapa banyak informasi yang ditulis ke WAL.
- synchronous_commit / synchronous replication adalah suatu opsi yang memungkinkan transaksi antara server DB dan Replica selesai lebih cepat. dengan synchronous commit, penundaan replikasi secara langsung mempengaruhi waktu penyelesaian transaksi pada master, dan dengan synchronous commit ini, master dapat melanjutkan dengan kecepatan penuh.
11. Scroll kebawah, cari serta uncomment syntak archive_mode, kemudian atur optionnya menjadi on. Setelah itu uncommen syntak archive_command dan atur optionnya menjadi command atau perintah yang digunakan untuk pengarsipan.
- 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_mode tidak dapat diaktifkan saat wal_level disetel menjadi minimal.
- archive command merupakan command yang digunakan untuk mengarsip logifile segmen.
- % p dalam string digantikan oleh nama path dari file yang akan diarsipkan, dan % f di ganti hanya dengan nama file
12. Pada baris 228, kita akan uncomment max_wal_sender, dimana max wal sender ini digunakan untuk menentukan jumlah koneksi maksimum dari standby server. Karena disini kita hanya mempunyai dua server, yaitu master dan slave/node1, maka disini kita atur valuenya menjadi 2. pada baris 230 kita akan uncomment juga wal_keep_segments, dan satuanya adalah mb. Pada contoh ini kita atur menjadi 10.
13. Selanjutnya kita akan uncomment synchronous_standby_names nya yang merupakan pendefinisian dari nama server standby yang akan digunakan untuk database replication. Nama yang di maksud yaitu berupa hostname.
14. Selanjutnya kita akan melakukan pengeditan pada file konfigurasi pg_hba.conf yang terletak pada file /var/opt/rh/rh-postgresql95/lib/pgsql/data/.
15. Cari script di bawah ini. uncomment setiap local host yang ada dan edit yang sebelumnya masih user postgres, ubah menjadi replica. Edit ketiga host tersebut, dimana 1 host dengan ip loopback, dan 2 sisanya menggunakan ip server master dan ip slave/node1, jangan lupa untuk mengatur methodnya menjadi md5.
16. Kemudian ketikkan perintah restart seperti gambar di bawah ini, supaya konfigurasi yang kita lakukan berjalan dengan baik dan benar.
17. Selanjutnya kita akan masuk kedalam shell postgress dengan melakukan perintah su - postgres. dan disinilah kita akan membuat user replica, dan isikan passwordnya sesuai kemauan kita.
~ Konfigurasi node1 (server replica) ~
1. Sebelumnya kita stop terlebih dahulu service postgresql yang terdapat pada server node1 ini.
2. Selanjutnya masuk kedalam directory data, dengan menggunakan perintah di bawah ini. Dan kita hapus semua file yang terdapat dalam direktory data tersebut dengan menggunakan perintah rm -rf *
3. Jika sudah, maka kita akan masuk kedalam shell postgres dengan menggunakan perintah su - postgres dan disini kita akan melakukan sinkronisasi antar server slave/node1 dan server master/controller.
- pg_basebackup untuk mengambil basebackup cluster database PostgreSQL yang sedang berjalan.
- -h 12.12.12.14 merupakan pendifinisian bahwa basebackup cluster database berasal dari host 12.12.12.14 yang merupakan ip server master/controller
- -U merupakan pendefinisian dari user, pada contoh ini user yang kita gunakan yaitu replica
- -D var/opt/rh/rh-postgresql95/lib/pgsql/data/ merupakan pendefinisian pada directory mana file backup cluster database tersebut.
- -P merupakan pendifinisian dari password
- --xlog digunakan untuk membuat catatan terhadap semua log yang dihasilkan selama backup
4. Setelah itu keluar dari shell postgres dengan menggunakan perintah exit. Dan sekarang kita akan melakukan pengeditan file konfigurasi.conf. Karena kita sudah masuk kedalam direktory data maka kita akan langsung ketik seperti gambar dibawah ini, jika tidak maka kita ketikkan letak spesifikasinya seperti gambar di bawah ini.
5. Jika sebelumnya pada master db syntak wal_level kita atur mejadi hot _standby. Nah sekarang pada server slave/node1 ini kita harus menyalakan hot_standby nya dengan cara uncomment dan menggatikan optionya menjadi on.
6. kemudian copy file recovery.conf.sample, kemudian ubah nama file tersebut menjadi recovery.conf.
7. Edit file recovery.conf yang telah ter-copy tadi.
8. Jika sudah, sekarang saatnya untuk mengedit file konfigurasi yaitu file recovery.conf tersebut.
- pada baris 44 restore_command dimana 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. Setiap% f dalam string diganti dengan nama file yang akan diambil dari arsip, dan setiap% p diganti dengan nama tujuan jalur salin pada server. Pada command ini terdapat perintah scp / secure copy dan dibelakangnya diikut oleh ip 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 destination directory yang telah ditentukan, Sedangkan maksud dari secure copy in dalah, proses penyalinannya secara secure, yaitu melalui ssh.
- Pada baris 116, uncomment Standby_mode pada slave / node1 dengan cara dan ubah optionnya menjadi on. Standy mode ini digunakan untuk Menentukan apakah akan memulai server PostgreSQL sebagai standby. Jika parameter ini aktif, server tidak akan berhenti untuk me-recovery 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.
- Pada baris 123 uncomment primary_conninfo, Primary conninfo ini digunakan menentukan string koneksi yang akan digunakan agar server standby terhubung dengan server primary / server master db.Keterangan untuk baris 123:
- host = 12.12.12.14 merupakan pendefinisian dari server primary.
- port = 5432 yaitu port yang digunakan oleh postgresql.
- user = replica merupakan user replikasi, yang kita buat sebelumnya.
- passwd = hani merupakan password dari user replica.
- application_name = hani-node1 merupakan hostname dari server slave/node1
9. Scroll ke bawah, hidupkan standby mode pada slave dengan cara uncomment pada baris standby_mode dan ubah optionnya menjadi on. Standby mode ini digunakan untuk menentukan apakah akan memulai server postgresql sebagai standby..
10. Masih di file recovery.conf, cari dan uncomment syntak primary_conninfo, orimary conninfo ini digunakan menentukan string koneksi yang akan digunakan agar server standby terhubung dengan server primary (server master db). edit barus tersebut menjadi seperti yang sudah saya tandai pada gambar di bawah ini.
11. Karna tadi service postgresql nya dimatikan, maka dari itu sekarang kita harus menjalankanya kembali.
~Reconfigure Server Master DB~
1. Masuk kedalam shell postgres dengan mengetikkan perintah su - postgres, dan setelah itu lakukan pengecekan apakah sudah di sinkronisasi atau belum antara server master dan server slave dengan mengetikan perintah seperti gambar di bawah ini.
2.sekarang kita akan coba membuat user baru dengan akses super user, karena user tidak bisa membuat database, jangan lupa untuk menyertakan passwordnya juga.
~verifikasi~
1. Saatnya untuk melakukan verifikasi dengan membuka browser dam ketikkan (domain)/phpPgAdmin dan ini merupakan tampilan utama dari phpPgAdmin.
2. Selanjutnya kita akan melakukan login dengan klik postgresql, kemudian isikan kolom username dan password sesuai dengan yang kita buat dengan akses super user, klik login.
3. Dan terlihat disini kita masuk menggunakan user hikmahani, dan sekarang kita akan coba membuat databse baru dengan mengetikan create database.
4. Isikan namanya sesuai dengan kemauan kita, dan disini kita coba beri komenya seperti gambar di bawah ini, jika sudah maka klik create.
5. Terlihat disini dengan domain www.hanihikma.net kita telah berhasil menambahkan satu database dan karena kita juga menggunakan user dengan akses superuser.
6. Pengetesan kedua, dengan melakukan login ke server slave/replicanya yaitu node1 (domain yang kita buat sebelumnya yaitu node1.hanihikma.net) dan kita login menggunakan username dam passwordnya yang sama.
Komentar
Posting Komentar