ในระบบ Database Replication แบบ Master-Slave เมื่อ Master Server หยุดทำงานกะทันหันและมีการ Promote Slave ขึ้นเป็น Master ใหม่ (Failover) พบว่าข้อมูลบางส่วนสูญหาย สาเหตุหลักของปัญหานี้คืออะไร
กSlave ได้รับ Binary Log จาก Master ไม่ครบก่อนที่ Master จะหยุดทำงาน ทำให้ข้อมูลที่ยังไม่ได้ Replicate สูญหายไป
ขSlave ใช้ Storage Engine ที่แตกต่างจาก Master ทำให้ไม่สามารถรับข้อมูลบางประเภทได้อย่างสมบูรณ์
คการตั้งค่า Network Bandwidth ระหว่าง Master และ Slave ไม่เพียงพอ ทำให้ข้อมูลถูกตัดทอนระหว่างการส่ง
งMaster Server ไม่ได้เปิดใช้งาน SSL Encryption ทำให้ข้อมูลบางส่วนไม่ถูกบันทึกลงใน Slave
เฉลยอธิบาย
ในระบบ Asynchronous Replication แบบ Master-Slave ข้อมูลที่ Master บันทึกลง Binary Log อาจยังไม่ได้ถูกส่งหรือ Apply บน Slave ทันทีก่อนที่ Master จะล่ม เรียกว่า Replication Lag ส่งผลให้เมื่อ Promote Slave เป็น Master ใหม่ ข้อมูลที่ยังอยู่ใน Binary Log ของ Master เดิมแต่ยังไม่ได้ Replicate จะสูญหายไป การแก้ไขคือใช้ Synchronous หรือ Semi-synchronous Replication เพื่อให้มั่นใจว่า Slave ได้รับข้อมูลครบก่อน Master ยืนยัน Transaction