มาดูความเหมาะสมและข้อจำกัดในการใช้งาน mysql cluster กับ Galera Cluster

มาดูความเหมาะสมในการใช้งานของ mysql cluster กับ Galera Cluster

Synchronous replication หรือ multi-master replication (Active-active multi-master topology) ของ MariaDB Galera Cluster โดยต้องทำการย้ายฐานข้อมูลจาก MySQL หรือ MariaDB ในรูปแบบ standalone server หรือใช้รูปแบบโครงสร้าง Asynchronous replication (master-slave replication) ไปใช้ MariaDB Galera Cluster เพื่อใช้ในการแก้ไขปัญหาดังกล่าว

จุดสำคัญของตัว MariaDB Galera Cluster คือ มันสามารถอ่าน และเขียนได้จาก cluster node ใดๆ ก็ได้ โดยที่มีระบบ membership control สามารถปลดออกจากกลุ่มเมื่อพบความผิดพลาด หรือเพิ่ม cluster node อัตโนมัติเมื่อมีการเพิ่มเข้ามาในระบบ โดยข้อมูลในการจัดการภายในเป็นแบบเป็น parallel replication ระดับ row

สำหรับการเชื่อมต่อกับ MariaDB Galera Cluster นั้นสามารถใช้ MySQL Library โดยทั่วไป โดยไม่ต้องแก้ไข code ใดๆ (นอกจากแก้ไขตามข้อจำกัดของระบบ Cluster บางอย่าง)

แน่นอนว่ามีข้อดีก็ต้องมีข้อจำกัด โดยข้อจำกัดของ MariaDB Galera Cluster นั้นคือ

  • ใช้ได้แต่ InnoDB storage engine เท่านั้น ถ้ามี MyISAM storage engine ให้ alter เสียก่อน
  • การที่ MariaDB Galera Cluster สามารถเพิ่มข้อมูลที่ตัว node ใดๆ ก็ได้ ต้องปรับแก้ auto_increment_increment และ auto_increment_offset ให้สอดคล้องกับ cluster node ที่ใช้ auto increment ใน table ต่างๆ แนะนำให้ใช้การเพิ่มข้อมูล 1-2 cluster node เพื่อป้องกันการทำ auto increment ซ้ำซ้อนกัน
  • สำหรับการใช้ DELETE ต้องใช้กับ table ที่มี primary key คำแนะนำง่ายๆ ถ้าจะใช้ table ทุกๆ ตัวต้องมี primary key และการ DELETE ต้องทำผ่าน primary key
  • เมื่อเป็น multi-master replication การใช้ binlog-do-db และ binlog-ignore-db จึงทำไม่ได้ รวมไปถึงใช้ Query cache ไม่ได้ (แนะนำให้ใช้ Memcached แก้ไขปัญหาแทนได้)
  • ทำ LOCK/UNLOCK TABLES และใช้ XA transactions ไม่ได้ (แต่ยังใช้ Transaction ตามปรกติได้)
  • แนะนำให้ใช้เพียง character_set_server แบบ utf8 เท่านั้น
  • ไม่สนับสนุนบน Windows

Leave a Reply

iameveme