รู้จักกับ MySQL Cluster กันค่ะ

SQL Knowledge ทั้ง sql มาตรฐาน หลักการออกแบบฐานข้อมูล ความสัมพันธ์ของ ตาราง Mysql , PGSQL, Oracle, MSSQL

Moderators: mindphp, ผู้ดูแลกระดาน

putcharaporn_tan
PHP Super Member
PHP Super Member
Posts: 394
Joined: 04/08/2015 10:01 am
Contact:

รู้จักกับ MySQL Cluster กันค่ะ

Post by putcharaporn_tan »

:arrow: :arrow: มาทำความรู้จักกับ MySQL Cluster กันค่ะ :mrgreen: :mrgreen:
:roll: ก่อนอื่นต้องมาทำความรู้จักกับ Cluster กันก่อน :mrgreen:
:arrow: Cluster เป็นการนำเครื่อง Server มากว่า2 เครื่องมาต่อแบบขนาน ให้ทำงานร่วมกัน ซึ่งจะทำให้การทำงานนั้นมีประสิทธิภาพมากขึ้น และสามารถช่วยป้องกัน server ล่มได้ด้วย สืบเนื่องจาก ตัว server มีการต่อแบบขนานไว้มากกว่า 2 ตัว ถ้าหากตัวใดตัวหนึ่งล่มไป อีกตัวก็ยังสามารถทำงานได้อยู่ แต่ตัว server นั้น จะต้องทำงานบน OS เดียวกัน

:arrow: :arrow: ระบบ cluster แบ่งเป็น 2 ชนิด คือ
1. ระบบ cluster แบบปิด
จะซ่อนระบบนั้นไว้ทั้งหมด cluster นั้นจะต่อ ผ่าน Gateway ข้อดีของมันก็คือ จะมีความปลอดภัยที่สูง ส่วนข้อเสียก็คือมันจะไม่สามารถแบ่งส่วนการทำงานหรือบริหารข้อมูลจากภายนอกได้
2. ระบบ cluster แบบเปิด
ผู้ใช้นั้นสามารถเข้าถึงทุกโหนดได้เลยโดยตรงจากการเชื่อมต่อภายนอก ข้อดีของมันก็คือ ช่วยกับทำงานหรือแบ่งข้อมูลกันทำงานได้ ซึ่งมันเหมาะกับ การให้บริการข้อมูลจำนวนมาก เช่น เว็บหรือ FTP ส่วนข้อเสียนั้น คือ จะมีความปลอดภัยที่ต่ำมากเพราะจะต้อง มาจัดการดูแลเครื่องในระบบทั้งหมด
1-basic_config.jpg
1-basic_config.jpg (56.3 KiB) Viewed 2766 times
ประโยชน์ของระบบ cluster
1.เพิ่มความทนทานของระบบให้มากขึ้น เพราะเมื่อมีเหตุขัดข้องกับตัว serverที่เป็น master ตัวที่เป็น slave ก็จะทำงานแทน ทำหน้าที่เหมือน Back up ข้อมูลแทนกัน
2.เวลาในการเรียกใช้หรือดูข้อมูลเร็วขึ้น เนื่องจากตัว slave ไปแบ่งส่วนการคิวรีของตัว master ทำให้ไปลดการประมวลผลของตัว master
3.สามารถทำการ back up ข้อมูลได้ขณะที่ตัว master server กำลังทำงานอยู่ โดยการbackup ที่ ตัว slave เป็นตัวเก็บข้อมูล

ดังนั้น :!: :!: MySQL Cluster :?: :?:
:lol: :lol: MySQL Cluster จึงเป็นเทคโนโลยีที่ช่วยให้การจัดกลุ่มของฐานข้อมูลในหน่วยความจำในระบบเป็นสถาปัตยกรรมที่ช่วยให้ระบบการทำงานร่วมกับฮาร์ดแวร์ที่ราคาไม่แพงมากและมีความต้องการขั้นต่ำที่เฉพาะเจาะจง สำหรับฮาร์ดแวร์หรือซอฟต์แวร์ MySQL Cluster ถูกออกแบบมาให้มีความล้มเหลวน้อยที่สุด,แต่ละองค์ประกอบจะมีหน่วยความจำและดิสก์ของตัวเองและการใช้กลไกการจัดเก็บข้อมูลที่ใช้ร่วมกัน MySQL server จะมีเครื่องมือจัดเก็บในหน่วยความจำ Cluster ที่เรียกว่า NDB (Network DataBase) ซึ่ง NDB หมายถึง การติดตั้งที่มีเฉพาะเครื่องมือสำหรับการเก็บข้อมูลขณะที่ "MySQL Cluster" หมายถึงการรวมกันของเซิร์ฟเวอร์ MySQL กับเครื่องมือเก็บ NDB Cluster ซึ่งจะอธิบายโครงสร้างของ MySQL Cluster ที่มีองค์ประกอบอยู่ 3 ส่วนได้แก่
Cluster_Scheme_New.jpg
Cluster_Scheme_New.jpg (55.5 KiB) Viewed 2766 times
:wink: 1. Management Server เป็นส่วนที่เก็บ Configuration ของระบบ ซึ่งคอนฟิกจะบอกว่าในระบบคลัสเตอร์นั้นประกอบด้วยโหนดอะไรบ้าง เป็นต้น นอกจากนั้นยังทำหน้าที่ให้ข้อมูลของระบบกับโหนดอื่นๆ นับว่าเป็นส่วนสำคัญของระบบ
:wink: 2. Data Node เป็นโหนดที่ทำหน้าที่เก็บข้อมูล ข้อมูลฐานข้อมูลที่งานในระบบ MySQL Cluster จะถูกจัดเก็บลงบนเครื่อง Data Node นี้ ซึ่งโดยมากจะมีหลายเครื่องเพื่อทำ High Availability จากรูปจะเห็นว่ามี Data Node อยู่ 4 เครื่อง และแบ่งออกเป็น 2 กลุ่ม ตามที่มีจุดไข่ปลาล้อมลอบ ซึ่งทาง MySQL เรียกว่าโหนดกรุ๊ป (Node Group) ข้อมูลที่ถูกจัดเก็บลงมาจะถูกจัดเก็บแบบกระจายกันไปตามโหนดกรุ๊ป โดยเครื่องในโหนดกรุ๊ปจะเก็บข้อมูลเหมือนกัน เพื่อกันการผิดพลาด เวลาที่มีเครื่องหนึ่งเครื่องใดในกลุ่มไม่สามารถให้บริการได้ อีกก็ยังมีอีกเครื่องที่มีข้อมูลเหมือนกันอยู่
:wink: 3. MySQL Server (SQL Node หรือ API Node) เป็น MySQL ปรกติที่รับการติดต่อกับโปรแกรมประยุกต์อื่นๆ ตามปรกติ ต่างกันเพียงแค่การจัดเก็บข้อมูลจะถูกจัดเก็บที่ Data Node
:arrow: :arrow: องค์ประกอบทั้งหมดเหล่านี้จะทำงานร่วมกันเพื่อฟอร์ม MySQL Cluster เมื่อข้อมูลถูกจัดเก็บโดย NDB table จะถูกเก็บไว้ใน nodes table ซึ่งจะสามารถเข้าถึงโดยตรงได้จากทุก MySQL server ใน Cluster ดังนั้นในการประยุกต์ใช้บัญชีเงินเดือนการจัดเก็บข้อมูลใน cluster หากการปรับปรุงโปรแกรมเงินเดือนของพนักงาน MySQL sever อื่น ๆ ทั้งหมด ที่มีข้อมูลนี้ก็จะเห็นการเปลี่ยนแปลงนี้ได้ทันที
:arrow: :arrow: อย่างไรก็ตาม MySQL server ที่ไม่ได้เชื่อมต่อกับ MySQL Cluster จะไม่สามารถใช้เครื่องมือเก็บ NDB และไม่สามารถเข้าถึงใด ๆ ในข้อมูลของ MySQL Cluster ได้ข้อมูลที่เก็บไว้ใน nodes ข้อมูล
:arrow: :arrow: สำหรับ MySQL Cluster ; Cluster สามารถจัดการกับความล้มเหลวของ nodes ข้อมูลส่วนบุคคลที่มีผลกระทบอื่นๆจำนวนมากจากการทำธุรกรรม โดยจะยกเลิกการสูญเสียสถานะของธุรกรรม เนื่องจากการทำธุรกรรมที่คาดว่าจะเกิดความล้มเหลวของการทำธุรกรรมนี้ไม่ควรจะเป็นที่มาของปัญหาที่จะเกิดขึ้น nodes ส่วนสามารถหยุดและเริ่มการทำงานใหม่ และจากนั้นสามารถกลับเข้าร่วมระบบ (cluster) ได้
:arrow: :arrow: การสำรองและกู้คืนฐานข้อมูล MySQL Cluster สามารถทำได้โดยใช้ฟังก์ชันการทำงานที่พบใน NDB แต่หากเกิดรหัสข้อผิดพลาดก็จะถูกส่งกลับเมื่อมีการออกคำขอสำรองข้อมูล สาเหตุส่วนใหญ่เป็นหน่วยความจำไม่เพียงพอหรือพื้นที่ว่างในดิสก์เต็ม นอกจากนี้ควรตรวจสอบให้แน่ใจว่ามีพื้นที่ว่างเพียงพอบนพาร์ติชันฮาร์ดไดรฟ์ของการสำรองข้อมูลหรือไม่ NDB ไม่สนับสนุนการทำซ้ำซึ่งสามารถทำให้เกิดปัญหากับกระบวนการฟื้นฟู ถึงแม้ว่าขั้นตอนการสำรองข้อมูลเป็น "hot" คืน MySQL Cluster จากการสำรองข้อมูลไม่ได้เป็น 100% กระบวนการ "ร้อน" เพราะนี่คือความจริงของกระบวนการเรียกคืนการทำธุรกรรมที่ไม่ได้รับการทำซ้ำได้ที่อ่านจากการเรียกคืนข้อมูล ซึ่งหมายความว่าสถานะของข้อมูลที่ไม่สอดคล้องกันในขณะที่ทำการคืนค่าอยู่ในการประมวนผล
MySQL_Cluster.png
MySQL_Cluster.png (46.23 KiB) Viewed 2766 times
:mrgreen: ข้อดีของระบบ MySQL Cluster :mrgreen:
- เป็นระบบที่มีสภาพพร้อมใช้งานสูงและเป็นระบบแบบภาระงานสมดุล (High availability and Load balanced)
- เป็นระบบที่รองรับงานต่อหนึ่งหน่วยเวลาในปริมาณมาก (High Throughput)
- ปรับเปลี่ยนขนาดของระบบได้ง่าย (Scalability)
- สามารถใช้ฮาร์ดแวร์ทั่วไปได้ (Can deploy with low cost hardware)
:twisted: ข้อด้อยของระบบ MySQL Cluster :evil:
- ใช้เครื่องจำนวนมาก (Need many number of machines)
- การคอนฟิกยุ่งยาก (Difficult in configuration)
- ไม่เหมาะกับงานที่มีการคิวรี่ที่ซับซ้อน เพราะยังทำงานช้ากว่าระบบแบบเครื่องเดี่ยว (Not work with complex query)
- ต้องใช้ทักษะในการติดตั้งและดูแลสูง (Required high technical skill)



:mrgreen: :mrgreen: :mrgreen: :mrgreen: :roll: :roll: :roll: :roll: :roll: :roll:
ขอบคุณบทความจาก:รู้จักกับ MySQL Cluster
Database Cutter
putcharaporn <3

  • Similar Topics
    Replies
    Views
    Last post

Return to “SQL Knowledge”

Who is online

Users browsing this forum: Google Adsense [Bot] and 18 guests