Saya telah menerapkan solusi HA untuk mysql berdasarkan replikasi master-master. Ada mekanisme di bagian ujung depan yang menjamin bahwa hanya satu db akan dibaca / ditulis pada waktu tertentu (yaitu kami hanya menggunakan replikasi untuk HA).
Saya telah mengkonfirmasi replikasi bekerja seperti yang diharapkan, tetapi saya bertanya-tanya tentang skenario kegagalan dan pemulihan Secara khusus, saya khawatir tentang apa yang terjadi ketika satu master gagal dalam keadaan yang tidak dapat dipulihkan, dan perlu diciptakan kembali dari master lainnya:
- Karena master lain aktif dan kemungkinan besar digunakan, saya tidak dapat menguncinya dan membuat dump dari
mysqldump
(database kami cukup besar, danmysqldump
dapat dengan mudah mengambil jam setelah penggunaan beberapa bulan). - Bahkan dengan asumsi saya memiliki dump, sangat penting bahwa posisi binlog seperti yang ditunjukkan oleh SHOW MASTER STATUS sesuai dengan dump yang dilakukan setelah database dikunci.
Solusi sederhana untuk masalah pertama adalah dengan menggunakan basis data ketiga yang bertindak sebagai cadangan, dari mana saya bisa melakukan mysqldump
. Tetapi kemudian bagaimana saya memastikan master yang diciptakan dapat memulai replikasi dari master yang berjalan secara konsisten?