มาทำความรู้จักกับ MySQL Cluster กันค่ะ
ก่อนอื่นต้องมาทำความรู้จักกับ Cluster กันก่อน
Cluster เป็นการนำเครื่อง Server มากว่า2 เครื่องมาต่อแบบขนาน ให้ทำงานร่วมกัน ซึ่งจะทำให้การทำงานนั้นมีประสิทธิภาพมากขึ้น และสามารถช่วยป้องกัน server ล่มได้ด้วย สืบเนื่องจาก ตัว server มีการต่อแบบขนานไว้มากกว่า 2 ตัว ถ้าหากตัวใดตัวหนึ่งล่มไป อีกตัวก็ยังสามารถทำงานได้อยู่ แต่ตัว server นั้น จะต้องทำงานบน OS เดียวกัน
ระบบ cluster แบ่งเป็น 2 ชนิด คือ
1. ระบบ cluster แบบปิด
จะซ่อนระบบนั้นไว้ทั้งหมด cluster นั้นจะต่อ ผ่าน Gateway ข้อดีของมันก็คือ จะมีความปลอดภัยที่สูง ส่วนข้อเสียก็คือมันจะไม่สามารถแบ่งส่วนการทำงานหรือบริหารข้อมูลจากภายนอกได้
2. ระบบ cluster แบบเปิด
ผู้ใช้นั้นสามารถเข้าถึงทุกโหนดได้เลยโดยตรงจากการเชื่อมต่อภายนอก ข้อดีของมันก็คือ ช่วยกับทำงานหรือแบ่งข้อมูลกันทำงานได้ ซึ่งมันเหมาะกับ การให้บริการข้อมูลจำนวนมาก เช่น เว็บหรือ FTP ส่วนข้อเสียนั้น คือ จะมีความปลอดภัยที่ต่ำมากเพราะจะต้อง มาจัดการดูแลเครื่องในระบบทั้งหมด
ประโยชน์ของระบบ cluster
1.เพิ่มความทนทานของระบบให้มากขึ้น เพราะเมื่อมีเหตุขัดข้องกับตัว serverที่เป็น master ตัวที่เป็น slave ก็จะทำงานแทน ทำหน้าที่เหมือน Back up ข้อมูลแทนกัน
2.เวลาในการเรียกใช้หรือดูข้อมูลเร็วขึ้น เนื่องจากตัว slave ไปแบ่งส่วนการคิวรีของตัว master ทำให้ไปลดการประมวลผลของตัว master
3.สามารถทำการ back up ข้อมูลได้ขณะที่ตัว master server กำลังทำงานอยู่ โดยการbackup ที่ ตัว slave เป็นตัวเก็บข้อมูล
ดังนั้น MySQL Cluster
MySQL Cluster จึงเป็นเทคโนโลยีที่ช่วยให้การจัดกลุ่มของฐานข้อมูลในหน่วยความจำในระบบเป็นสถาปัตยกรรมที่ช่วยให้ระบบการทำงานร่วมกับฮาร์ดแวร์ที่ราคาไม่แพงมากและมีความต้องการขั้นต่ำที่เฉพาะเจาะจง สำหรับฮาร์ดแวร์หรือซอฟต์แวร์ MySQL Cluster ถูกออกแบบมาให้มีความล้มเหลวน้อยที่สุด,แต่ละองค์ประกอบจะมีหน่วยความจำและดิสก์ของตัวเองและการใช้กลไกการจัดเก็บข้อมูลที่ใช้ร่วมกัน MySQL server จะมีเครื่องมือจัดเก็บในหน่วยความจำ Cluster ที่เรียกว่า NDB (Network DataBase) ซึ่ง NDB หมายถึง การติดตั้งที่มีเฉพาะเครื่องมือสำหรับการเก็บข้อมูลขณะที่ "MySQL Cluster" หมายถึงการรวมกันของเซิร์ฟเวอร์ MySQL กับเครื่องมือเก็บ NDB Cluster ซึ่งจะอธิบายโครงสร้างของ MySQL Cluster ที่มีองค์ประกอบอยู่ 3 ส่วนได้แก่
1. Management Server เป็นส่วนที่เก็บ Configuration ของระบบ ซึ่งคอนฟิกจะบอกว่าในระบบคลัสเตอร์นั้นประกอบด้วยโหนดอะไรบ้าง เป็นต้น นอกจากนั้นยังทำหน้าที่ให้ข้อมูลของระบบกับโหนดอื่นๆ นับว่าเป็นส่วนสำคัญของระบบ
2. Data Node เป็นโหนดที่ทำหน้าที่เก็บข้อมูล ข้อมูลฐานข้อมูลที่งานในระบบ MySQL Cluster จะถูกจัดเก็บลงบนเครื่อง Data Node นี้ ซึ่งโดยมากจะมีหลายเครื่องเพื่อทำ High Availability จากรูปจะเห็นว่ามี Data Node อยู่ 4 เครื่อง และแบ่งออกเป็น 2 กลุ่ม ตามที่มีจุดไข่ปลาล้อมลอบ ซึ่งทาง MySQL เรียกว่าโหนดกรุ๊ป (Node Group) ข้อมูลที่ถูกจัดเก็บลงมาจะถูกจัดเก็บแบบกระจายกันไปตามโหนดกรุ๊ป โดยเครื่องในโหนดกรุ๊ปจะเก็บข้อมูลเหมือนกัน เพื่อกันการผิดพลาด เวลาที่มีเครื่องหนึ่งเครื่องใดในกลุ่มไม่สามารถให้บริการได้ อีกก็ยังมีอีกเครื่องที่มีข้อมูลเหมือนกันอยู่
3. MySQL Server (SQL Node หรือ API Node) เป็น MySQL ปรกติที่รับการติดต่อกับโปรแกรมประยุกต์อื่นๆ ตามปรกติ ต่างกันเพียงแค่การจัดเก็บข้อมูลจะถูกจัดเก็บที่ Data Node
องค์ประกอบทั้งหมดเหล่านี้จะทำงานร่วมกันเพื่อฟอร์ม MySQL Cluster เมื่อข้อมูลถูกจัดเก็บโดย NDB table จะถูกเก็บไว้ใน nodes table ซึ่งจะสามารถเข้าถึงโดยตรงได้จากทุก MySQL server ใน Cluster ดังนั้นในการประยุกต์ใช้บัญชีเงินเดือนการจัดเก็บข้อมูลใน cluster หากการปรับปรุงโปรแกรมเงินเดือนของพนักงาน MySQL sever อื่น ๆ ทั้งหมด ที่มีข้อมูลนี้ก็จะเห็นการเปลี่ยนแปลงนี้ได้ทันที
อย่างไรก็ตาม MySQL server ที่ไม่ได้เชื่อมต่อกับ MySQL Cluster จะไม่สามารถใช้เครื่องมือเก็บ NDB และไม่สามารถเข้าถึงใด ๆ ในข้อมูลของ MySQL Cluster ได้ข้อมูลที่เก็บไว้ใน nodes ข้อมูล
สำหรับ MySQL Cluster ; Cluster สามารถจัดการกับความล้มเหลวของ nodes ข้อมูลส่วนบุคคลที่มีผลกระทบอื่นๆจำนวนมากจากการทำธุรกรรม โดยจะยกเลิกการสูญเสียสถานะของธุรกรรม เนื่องจากการทำธุรกรรมที่คาดว่าจะเกิดความล้มเหลวของการทำธุรกรรมนี้ไม่ควรจะเป็นที่มาของปัญหาที่จะเกิดขึ้น nodes ส่วนสามารถหยุดและเริ่มการทำงานใหม่ และจากนั้นสามารถกลับเข้าร่วมระบบ (cluster) ได้
การสำรองและกู้คืนฐานข้อมูล MySQL Cluster สามารถทำได้โดยใช้ฟังก์ชันการทำงานที่พบใน NDB แต่หากเกิดรหัสข้อผิดพลาดก็จะถูกส่งกลับเมื่อมีการออกคำขอสำรองข้อมูล สาเหตุส่วนใหญ่เป็นหน่วยความจำไม่เพียงพอหรือพื้นที่ว่างในดิสก์เต็ม นอกจากนี้ควรตรวจสอบให้แน่ใจว่ามีพื้นที่ว่างเพียงพอบนพาร์ติชันฮาร์ดไดรฟ์ของการสำรองข้อมูลหรือไม่ NDB ไม่สนับสนุนการทำซ้ำซึ่งสามารถทำให้เกิดปัญหากับกระบวนการฟื้นฟู ถึงแม้ว่าขั้นตอนการสำรองข้อมูลเป็น "hot" คืน MySQL Cluster จากการสำรองข้อมูลไม่ได้เป็น 100% กระบวนการ "ร้อน" เพราะนี่คือความจริงของกระบวนการเรียกคืนการทำธุรกรรมที่ไม่ได้รับการทำซ้ำได้ที่อ่านจากการเรียกคืนข้อมูล ซึ่งหมายความว่าสถานะของข้อมูลที่ไม่สอดคล้องกันในขณะที่ทำการคืนค่าอยู่ในการประมวนผล
ข้อดีของระบบ MySQL Cluster
- เป็นระบบที่มีสภาพพร้อมใช้งานสูงและเป็นระบบแบบภาระงานสมดุล (High availability and Load balanced)
- เป็นระบบที่รองรับงานต่อหนึ่งหน่วยเวลาในปริมาณมาก (High Throughput)
- ปรับเปลี่ยนขนาดของระบบได้ง่าย (Scalability)
- สามารถใช้ฮาร์ดแวร์ทั่วไปได้ (Can deploy with low cost hardware)
ข้อด้อยของระบบ MySQL Cluster
- ใช้เครื่องจำนวนมาก (Need many number of machines)
- การคอนฟิกยุ่งยาก (Difficult in configuration)
- ไม่เหมาะกับงานที่มีการคิวรี่ที่ซับซ้อน เพราะยังทำงานช้ากว่าระบบแบบเครื่องเดี่ยว (Not work with complex query)
- ต้องใช้ทักษะในการติดตั้งและดูแลสูง (Required high technical skill)
ขอบคุณบทความจาก:รู้จักกับ MySQL Cluster
Database Cutter
รู้จักกับ MySQL Cluster กันค่ะ
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP Super Member
- โพสต์: 394
- ลงทะเบียนเมื่อ: 04/08/2015 10:01 am
- ติดต่อ:
รู้จักกับ MySQL Cluster กันค่ะ
putcharaporn <3
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ อัพเกรด Mysql Ubuntu จาก MySQL 5.5 เป็น MySQL 5.7
โดย mindphp » 12/06/2016 5:57 pm » ใน Linux - Web Server - 1 ตอบกลับ
- 3339 แสดง
-
โพสต์ล่าสุด โดย mindphp
12/06/2016 5:58 pm
-
-
-
โพสต์ใหม่ วิธีแสดงคำสั่ง ที่กำลังทำงานอยู่ของ MySQL / MariaDB ด้วยคำสั่ง show process command mysql
โดย mindphp » 29/06/2021 5:53 am » ใน SQL Knowledge - 0 ตอบกลับ
- 3652 แสดง
-
โพสต์ล่าสุด โดย mindphp
29/06/2021 5:53 am
-
-
-
โพสต์ใหม่ วิธีการหา Error ของการ Insert ข้อมูลลงฐานข้อมูล Mysql โดยใช้ Mysql
โดย Patipat » 17/06/2019 5:42 pm » ใน SQL Knowledge - 0 ตอบกลับ
- 6370 แสดง
-
โพสต์ล่าสุด โดย Patipat
17/06/2019 5:42 pm
-
-
-
โพสต์ใหม่ ปัญหา MySQL unknown column 'password_last_changed' หลังการอัพเกรด MySQL เป็นเวอร์ชั่น 5.7
โดย mindphp » 13/06/2016 5:42 pm » ใน SQL - Database - 1 ตอบกลับ
- 2423 แสดง
-
โพสต์ล่าสุด โดย mindphp
13/06/2016 5:44 pm
-
-
- 0 ตอบกลับ
- 2143 แสดง
-
โพสต์ล่าสุด โดย mindphp
23/09/2016 12:21 am
-
- 1 ตอบกลับ
- 2908 แสดง
-
โพสต์ล่าสุด โดย mindphp
23/07/2017 3:20 am
-
- 2 ตอบกลับ
- 1827 แสดง
-
โพสต์ล่าสุด โดย mindphp
15/03/2022 8:48 am
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 66