-
Replikasi master-master berdasarkan fungsi replikasi asli basis data MySQL
-
Solusi berbasis replikasi Galera
-
Solusi berbasis Group Replication
-
Solusi Berbasis Canal
-
Cadangkan Database MySQL dengan Vinchin Backup & Recovery
-
Kesimpulan
MySQL adalah sistem manajemen basis data relasional open-source yang banyak digunakan untuk mengelola dan menyimpan data terstruktur. MySQL dikenal karena kesederhanaan, kemudahan penggunaan, dan skalabilitasnya, menjadikannya pilihan populer untuk berbagai aplikasi, mulai dari situs web skala kecil hingga perusahaan skala besar.
Untuk sinkronisasi data secara real-time, persyaratan utamanya adalah mengimplementasikannya berdasarkan log, yang memungkinkan sinkronisasi data hampir real-time. Hal ini tidak memberikan batasan tambahan pada desain dan implementasi database itu sendiri. Tujuan dari replikasi sinkron aktif-aktif MySQL adalah untuk memastikan ketersediaan terus-menerus dan toleransi kesalahan. Berikut adalah 4 metode untuk mencapai replikasi sinkron aktif-aktif MySQL.
Replikasi master-master berdasarkan fungsi replikasi asli basis data MySQL
Sangat cocok untuk implementasi skala kecil hingga menengah.
Dalam arsitektur ini, dua node dapat menggunakan mode dual-master sederhana dan memanfaatkan koneksi khusus. Dalam hal terjadi kegagalan pada node master_A, koneksi aplikasi dapat segera beralih ke node master_B, dan sebaliknya.
Untuk menghindari skenario split-brain, di mana kedua node menulis data yang bertentangan, penting untuk mengatur nilai yang berbeda untuk auto-increment-increment dan auto-increment-offset pada kedua node. Hal ini disebabkan oleh kemungkinan bahwa jika node master secara tak terduga crash atau menjadi tidak tersedia, ada kemungkinan beberapa event binlog belum direplikasi ke node slave. Dalam kondisi seperti ini, dapat terjadi konflik antara nilai auto-increment yang dihasilkan di slave dengan nilai asli di master.
Namun, jika terdapat mekanisme fault-tolerant yang tepat untuk menyelesaikan konflik ID auto-increment master-slave, maka penggunaan metode tersebut dapat dihindari. Pada versi MySQL yang diperbarui 5.7+, memanfaatkan replikasi multi-thread dapat secara signifikan mengurangi latensi replikasi. Selain itu, solusi alternatif lain yang sangat sensitif terhadap latensi replikasi adalah replikasi semi-sync, yang hampir tidak memiliki keterlambatan. Namun, hal ini dapat menyebabkan penurunan kinerja konkurensi transaksi, terutama dalam penulisan dua arah. Diperlukan evaluasi yang menyeluruh untuk pengambilan keputusan.
Solusi berbasis replikasi Galera
Galera adalah mekanisme replikasi sinkronisasi data multi-master yang disediakan oleh Codership. Galera memungkinkan replikasi data secara sinkron serta operasi baca dan tulis di antara banyak node, memastikan ketersediaan tinggi dan konsistensi data dalam basis data. Solusi utama untuk ketersediaan tinggi berbasis Galera adalah MariaDB Galera Cluster dan Percona XtraDB Cluster (PXC).
Saat ini, PXC lebih umum digunakan dan memberikan konsistensi data yang ketat, sehingga sangat cocok untuk e-commerce. Namun, PXC juga memiliki keterbatasannya. Dalam skenario dengan volume transaksi yang sangat tinggi, disarankan menggunakan jaringan InfiniBand untuk mengurangi latensi jaringan. Hal ini dikarenakan PXC dapat mengalami write amplification dan efek bottleneck, yang menyebabkan penurunan signifikan pada efisiensi konkurensi. Sama seperti replikasi semi-sinkron, replikasi Galera umumnya terbatas pada tiga node. Selain itu, jitter jaringan dapat menyebabkan masalah pada kinerja dan stabilitas.
Solusi berbasis Group Replication
MGR (MySQL Group Replication) adalah solusi ketersediaan tinggi yang secara resmi diperkenalkan oleh MySQL. MGR menyediakan jaminan konsistensi data yang kuat di antara node-node dalam sebuah kluster basis data melalui protokol Paxos. MGR berbasis pada teknologi replikasi asli dan ditawarkan sebagai sebuah plugin. MGR memungkinkan semua node dalam kluster dapat ditulis, mengatasi keterbatasan performa kluster tunggal, menyelesaikan masalah split-brain akibat partisi jaringan serta meningkatkan keandalan data yang direplikasi.
Namun, kenyataannya cukup keras. Saat ini, belum banyak pengadopsi awal MGR. Selain itu, MGR hanya mendukung tabel InnoDB dan memerlukan setiap tabel memiliki kunci utama untuk deteksi konflik pada write set. Fitur GTID harus diaktifkan, dan format log biner harus diatur ke ROW untuk pemilihan pemimpin dan write set.
COMMIT dapat potensial gagal, mirip dengan skenario kegagalan pada tingkat isolasi snapshot. Saat ini, kluster MGR (MySQL Group Replication) mendukung maksimal 9 node. Fitur kunci asing dan titik penyimpanan tidak didukung, sehingga mencegah pemeriksaan batasan global dan pengurutan sebagian. Log biner tidak mendukung checksum peristiwa binlog.
Solusi Berbasis Canal
Untuk sinkronisasi database real-time, Alibaba memiliki proyek open-source khusus bernama Otter, yang memungkinkan replikasi sinkron dari database terdistribusi. Ide inti Otter tetap berdasarkan pengambilan log data inkremental dari database untuk mencapai replikasi sinkron yang hampir real-time. Otter sendiri bergantung pada proyek open-source lain bernama Canal, yang fokusnya adalah menangkap informasi log sinkronisasi database inkremental.
Saat ini, Otter berfokus pada pencapaian replikasi yang sinkron antar basis data MySQL. Otter menggunakan teknologi yang serupa untuk mencapai replikasi sinkron dua arah antara dua basis data MySQL. Perlu dicatat bahwa dua arah di sini berarti data dapat disinkronkan dari A ke B atau dari B ke A, tetapi mungkin bersifat satu arah pada waktu tertentu.
Proses replikasi master-slave dapat dibagi menjadi tiga langkah:
1. Master mencatat perubahan ke dalam log biner, yang dikenal sebagai peristiwa log biner. Peristiwa ini dapat dilihat menggunakan perintah "show binlog events".
2. Slave menyalin peristiwa binary log dari master ke relay log miliknya sendiri.
3. Slave akan secara berurutan memutar ulang peristiwa-peristiwa yang tercatat dalam log relay untuk menerapkan perubahan dari master ke data miliknya sendiri.
Adapun prinsip dasar Canal, cukup sederhana:
1. Canal mensimulasikan protokol interaksi slave MySQL dengan berpura-pura menjadi slave MySQL dan mengirimkan permintaan dump ke server master MySQL.
2. Setelah menerima permintaan dump, MySQL master mulai mengirimkan log biner ke slave (yaitu Canal).
3. Canal kemudian menganalisis objek log biner (yang awalnya dalam format aliran byte) untuk mengekstrak informasi yang relevan.
Cadangkan Database MySQL dengan Vinchin Backup & Recovery
Untuk melindungi data secara lebih baik, disarankan untuk mencadangkan database Anda. Vinchin Backup & Recovery menyediakan fungsi andal untuk melindungi database Anda baik di mesin virtual maupun server fisik. Dengan bekerja sama secara baik dengan cadangan tingkat VM, Vinchin memberikan perlindungan ganda bagi pengguna lingkungan virtual terhadap data bisnis penting dan sistem informasi mereka.
Vinchin Backup & Recovery mendukung perlindungan Oracle DB, MySQL, SQL Server, PostgreSQL, Postgres Pro, dan MariaDB yang terinstal baik pada mesin fisik maupun virtual dengan fitur cadangan dan pemulihan database yang powerful. Vinchin juga menyediakan strategi cadangan penuh, cadangan diferensial, cadangan inkremental, dan cadangan log transaksi yang memungkinkan Anda membuat rencana pencadangan sesuai kebutuhan.
Vinchin Backup & Recovery mendukung cadangan panas yang efisien tanpa memengaruhi operasi normal basis data dan mudah untuk membuat pekerjaan cadangan basis data yang disesuaikan.
1 Pilih database target

2 Pilih penyimpanan cadangan

3 Pilih strategi cadangan

4 Kirimkan pekerjaan

Anda dapat mulai menggunakan sistem yang hebat ini dengan uji coba gratis selama 60 hari dengan semua fitur. Cukup klik tombol untuk mendapatkan paket instalasi. Anda dapat klik di sini untuk mengetahui lebih lanjut tentang cara mem-backup MySQL dengan Vinchin Backup & Recovery.
Kesimpulan
Replikasi sinkron aktif-aktif MySQL dirancang untuk memberikan ketersediaan tinggi dan fleksibilitas. Fitur ini memungkinkan beberapa instans MySQL aktif secara bersamaan dan melakukan sinkronisasi data satu sama lain, sehingga mendukung operasi baca dan tulis dua arah. Replikasi ini memastikan ketersediaan terus-menerus, penyeimbang beban, konsistensi data, dan fleksibilitas. Namun demikian, konfigurasi dan pengelolaan yang tepat sangatlah penting, dan pemilihan solusi serta alat implementasi tergantung pada kebutuhan spesifik yang dimiliki.
Untuk melindungi data database dengan efisien, Anda dapat memilih Vinchin Backup & Recovery untuk mem-backup dan memulihkan database dengan mudah. Jangan melewatkan uji coba gratis.
Bagikan di: