Database Replication

Backup database itu penting. Tetapi membuat file backup database saja tidak cukup. Walau pun backup dibuat secara otomatis di suatu periode waktu tertentu yang mungkin dilakukan beberapa kali dalam sehari, itu tetap tidak cukup.

Mengapa tidak cukup? Karena backup hanya membuat copy atas database pada posisi tertentu. Katakanlah backup dibuat pada jam 00:00, sebenarnya data yang tersimpan hanya sampai jam 00:00. Seandainya terjadi kerusakan data pada jam 11:00, maka semua transaksi yang dilakukan antara jam 00:00 sampai jam 11:00 akan hilang. Terpaksa user harus memasukkan ulang transaksi antara jam 00:00 sampai jam 11:00 setelah backup di-restore. Bayangkan jika transaksi yang terjadi sangat banyak atau jika transaksi tidak memiliki bukti fisik seperti struk/nota transaksi. Memasukkan ulang transaksi bisa membuat user frustasi. Apalagi jika transaksi ini harus dilakukan urut lantaran sifat transaksinya panjang untuk 1 account sesuai dengan alur bisnis perusahaan. Jika ada transaksi yang tidak ter-input, maka perusahaan atau pelanggan bisa rugi.

Untuk itu perlu dibuat replikasi database. Topologinya adalah ada 1 master server dan minimal 1 slave server. Setiap kali master server melakukan transaksi, maka slave server akan melakukan transaksi yang sama. Jadi posisi database slave akan sama dengan master. Tentu ada delay beberapa waktu. Tetapi delay ini tidak terlalu membahayakan karena relatif cepat. Kalau pun slave mati, dia akan kembali melakukan sinkronisasi ke master pada posisi terakhir dia sinkronisasi. Slave akan mengejar transaksi master sehingga posisinya akan mendekati posisi transaksi di master.

Keunggulan utama dari replikasi ini adalah karena replikasi dilakukan dalam waktu cepat dan data direplikasi secara parsial sesuai perubahan. Berbeda dengan backup yang mesti menyalin database master secara keseluruhan. Bayangkan jika database sudah berukuran GB atau bahkan TB. Tentu melakukan backup jadi hal yang membosankan karena butuh waktu lama dan bisa mengganggu pelayanan server ke user karena resource server tersedot untuk proses backup ini.

Karena sifatnya yang parsial ini, replikasi tidak terlalu menguras tenaga server, baik master mau pun slave. Sedangkan backup sangat menguras tenaga dan space master untuk menyalin database dan kemudian meng-kompresnya. Belum lagi jika harus mengirimnya ke media penyimpanan lain yang biasanya lebih rendah kecepatannya, misalnya ke external drive atau SAN/NAS, dll.

Sedangkan mekanisme replikasi akan lebih ringkas karena yang disimpan & diproses oleh slave hanya perubahan dari master. Tidak perlu secara keseluruhan.

Dan yang lebih penting dengan adanya replikasi ini adalah jika ada masalah dengan master, misalnya ketika main server drop, yaitu karena slave dapat segera dipromosikan untuk menjadi main server. Dan karena posisi database sama dengan main server, maka diharapkan tidak ada kehilangan data. Mungkin terjadi kehilangan data lantaran slave terhambat dalam replikasi saat master bermasalah, tetapi mungkin tidak sebanyak jika kita mengandalkan backup saja.

Keuntungan lain dari replikasi ini adalah karena replikasi bisa dilakukan dari 1 master ke banyak slave sekaligus. Kami pernah membuat konfigurasi 1 master dengan 2 slave dan 1 remote slave. Semuanya berjalan dengan baik.

Bacaan:
~ MySQL Replication

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.