คู่มือ Auto-Clustering สำหรับ Database
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
MariaDB/MySQL/Percona การทำ Cluster อัตโนมัติ
การจัดกลุ่ม Database เป็นข้อกำหนดบังคับสำหรับ Application ที่ใช้งานจริงที่มีโหลดสูงเพื่อให้มั่นใจว่าข้อมูลมีความพร้อมใช้งานและมีประสิทธิภาพสูงอย่างไรก็ตามการกำหนดค่า Cluster ที่เชื่อถือได้นั้นไม่ใช่เรื่องเล็กน้อยแม้แต่สำหรับนักพัฒนาและผู้ดูแลระบบที่มีประสบการณ์ก็ตามสำหรับการแก้ปัญหานี้ Platform ได้แนะนำการทำ Cluster แบบสำเร็จรูปสำหรับ MariaDB/MySQL/Percona เพื่อให้ Application มีความพร้อมใช้งานสูงตามค่าเริ่มต้น
โซลูชันที่นำมาใช้ให้ประโยชน์หลายประการ:
- ความพร้อมใช้งานสูงพร้อมตัวเลือกการจำลองแบบที่กำหนดไว้ล่วงหน้า- ระดับ Primary-Secondary, ระดับ Primary-Primary, Galera, XtraDB
- ความสามารถในการปรับขนาดและการค้นพบอัตโนมัติ– Node ใหม่เพิ่มเข้ามาในระหว่างHorizontal Scalingเชื่อมต่อกับ Cluster โดยจะมีการปรับที่จำเป็นทั้งหมดโดยอัตโนมัติ
- โหลดบาลานซ์อย่างมีประสิทธิภาพ– แต่ละ Cluster ได้รับการเสริมด้วย Node ProxySQL สอง Node สำหรับการทำโหลดบาลานซ์ด้วยการแยกคำขออ่าน/เขียนโดยอัตโนมัติ
- Failover อัตโนมัติ– Node Database ที่ไม่พร้อมใช้งานชั่วคราวหรือมีเวลาแฝงสูงจะถูกแยกออกจาก Cluster โดยอัตโนมัติและเพิ่มอีกครั้งเมื่อการเชื่อมต่อได้รับการกู้คืน
เปิดใช้งานการจัดกลุ่มอัตโนมัติสำหรับ Database
คลิกที่Environment ใหม่ที่ Dashboard แล้วเลือกMariaDB/MySQL/PerconaDatabase
เปิดใช้งานการจัดกลุ่มอัตโนมัติปุ่ม. ด้วยเหตุนี้เมนูแบบเลื่อนลงที่มีรูปแบบการจำลองที่แตกต่างกันจะปรากฏขึ้น:
- MariaDB- Primary-Secondary, Primary-Primary และ Galera
- MySQL- Primary-Secondary และ Primary-Primary
- Percona- ระดับ Primary-Secondary, ระดับ Primary-Primary และ XtraDB
ตัวเลือกการจัดกลุ่มอัตโนมัติ
เลือกประเภทการจำลองที่คุณต้องการเพิ่มจำนวน Node ที่จำเป็น
Load Balancer ProxySQL ที่พร้อมใช้งานสูง
โซลูชันการทำ Cluster อัตโนมัติ MariaDB/MySQL/Percona แต่ละโซลูชันมี Node ProxySQL สอง Node ที่เปิดใช้งานตามค่าเริ่มต้นที่ด้านหน้า ClusterDatabase หากจำเป็นคุณสามารถแยกพวกมันออกจาก TopologyCluster ก่อนการติดตั้งด้วยสวิตช์ที่เกี่ยวข้องโปรดทราบว่าคุณจะไม่สามารถทำเช่นนั้นได้ในภายหลัง
ข้อมูลรับรองการเข้าถึง ClusterDatabase
ในระหว่างการสร้าง ClusterPlatform จะสร้างข้อมูลรับรองการเข้าถึง Database โดยอัตโนมัติแต่คุณสามารถแทนที่ข้อมูลเหล่านั้นด้วยข้อมูลของคุณเองได้ในสามขั้นตอนง่ายๆ:
- คลิกที่ตัวแปรปุ่ม.
2. จากนั้นกดเพิ่มเพื่อให้ข้อมูลรับรอง Database ของผู้ใช้ที่กำหนดเองผ่านตัวแปรสองตัวDB_USERและDB_PASSดังต่อไปนี้:
3. กดนำมาใช้และข้อมูลประจำตัวที่กำหนดเองจะถูกส่งถึงคุณเมื่อการติดตั้ง Cluster สำเร็จสำหรับการเข้าถึงPHP MyAdmin ที่ Node หลักและ ClusterDatabaseจุดเข้า.
Horizontal Scaling ของ Cluster
หากคุณตัดสินใจที่จะขยายขนาดprimary-secondary/primary-primaryTopology ที่มี Node Database เพิ่มเติมจะถูกสร้างขึ้นโดยการ Clone Node รองที่มีอยู่เมื่อขั้นตอนการ Clone เสร็จสมบูรณ์ Database บนสมาชิก Cluster ใหม่จะจับข้อมูลผ่านทางบินล็อกเล่นซ้ำอัลกอริธึมดังกล่าวรับประกันว่า binlog จะไม่มีวันหมดอายุและ Horizontal Scaling จะใช้เวลาไม่นาน
การแยก Layer Cluster
คุณอาจตัดสินใจว่าจะใช้ Application ภายนอกหรือไม่ขึ้นอยู่กับว่าคุณจะใช้ Application ภายนอกหรือไม่ชั้นคุณจะเปิดเผยภายนอก - ทั้งหมดหรือ Layer พร็อกซีจุดเริ่มต้นเท่านั้นหมุนการเข้าถึง SLBสลับไปยังตำแหน่งที่ต้องการสำหรับแต่ละ Layer แล้วคลิกสร้าง.
นั่นคือทั้งหมด! ไม่ต้องกำหนดค่าใดๆ Cluster ก็พร้อมใช้งานแล้ว
ข้อมูลการเข้าถึง ClusterDatabase
หลังจากติดตั้งสำเร็จคุณจะได้รับอีเมลจำนวนหนึ่งพร้อมข้อมูล Cluster:
- PHP MyAdmin ที่ Node หลัก- Interface การดูแลระบบเว็บพร้อมข้อมูลประจำตัวในการเข้าถึง ServerDatabase สำหรับการจัดการเชิงโต้ตอบ
*จุดเริ่มต้นสำหรับการเชื่อมต่อกับ ClusterDatabase-ชื่อ Host และข้อมูลรับรองสำหรับการเชื่อมต่อApplication ไปยัง ClusterDatabase Node เหล่านี้สร้างชั้นพร็อกซีที่เรียกว่าจุดเริ่มต้นสำหรับ ClusterDatabase ที่มีชื่อ Host ดังต่อไปนี้:พร็อกซี.${envName}.${platformDomain}.
บันทึก:ในกรณีที่คุณกำลังจะสร้างและใช้บัญชีผู้ใช้แบบกำหนดเองหลังการติดตั้ง Cluster คุณควรเพิ่มบัญชีผู้ใช้เหล่านั้นลงในmysql_usersตารางบนแต่ละ Node ProxySQL ไม่เช่นนั้นคุณจะไม่สามารถสร้างการเชื่อมต่อกับ Database ผ่าน Layer พร็อกซีได้เมื่อต้องการทำเช่นนี้ให้ออกคำสั่งด้านล่าง:
$ MYSQL_PWD=admin mysql -h 127.0.0.1 -P6032 -uadmin -e "INSERT INTO mysql_users (username,password,default_hostgroup) VALUES ('<username>', '<password>', 2);"
$ MYSQL_PWD=admin mysql -h 127.0.0.1 -P6032 -uadmin -e "LOAD MYSQL USERS TO RUNTIME; SAVE MYSQL USERS TO DISK;"
ทดแทน<username>และ<password>ด้วยข้อมูลประจำตัวของบัญชี Database ที่สร้างขึ้นใหม่
- แผงเว็บ ProxySQL- UI เว็บสำหรับสถิติระบบและตัวชี้วัด Database ช่วยในการแก้ไขปัญหาและการวิเคราะห์ประสิทธิภาพโดยมอบวิธีง่ายๆในการตรวจสอบสถานะของ Server ProxySQL และแบ็กเอนด์ Database รวมถึงสถิติการเชื่อมต่อประสิทธิภาพการสืบค้นและตัววัดอื่นๆ
ประเภทการจำลองแบบใดให้เลือก
มาพิจารณารายละเอียดเกี่ยวกับรูปแบบการจำลองแต่ละรูปแบบที่มีสำหรับ Database ภายใน Platform เพื่อทำความเข้าใจว่ารูปแบบใดเหมาะสมที่สุดสำหรับความต้องการและกรณีการใช้งานเฉพาะ
การจำลองแบบ MariaDB/MySQL/Percona ระดับ Primary-Secondary
Primary-Secondaryการจำลองแบบเป็น Topology ที่ใช้บ่อยที่สุดซึ่งให้ความสอดคล้องที่ดี (นั่นคือมี Node เดียวในการแก้ไขข้อมูล) แต่ไม่มีการเปลี่ยนระบบอัตโนมัติเมื่อเกิดความล้มเหลวหลักเวลาแฝงในการเขียนในการจำลองแบบอะซิงโครนัสต่ำเนื่องจากการเขียนถูกบันทึกภายในเครื่องโดย Server หลักก่อนที่จะเขียนไปยัง Server รองช่วยให้สามารถขยายการอ่านได้โดยให้ประสิทธิภาพสูงสุดเนื่องจากการเพิ่มเรพลิกาเพิ่มเติมจะไม่ส่งผลต่อเวลาแฝงของการจำลองอ่านเนื้อหารองได้โดยไม่มีผลกระทบกับเนื้อหาหลักโดยมีข้อดีที่ชัดเจนดังนี้:
- ประสิทธิภาพสูงสำหรับการร้องขอการอ่าน
- การสำรอง Database สามารถทำได้โดยไม่มีผลกระทบต่อ Instance หลัก
- คำขอเชิงวิเคราะห์สามารถโหลด Instance รองได้เท่านั้น (โดยไม่กระทบต่อไพรมาตี)
การจำลองแบบ MariaDB/MySQL/Percona ระดับ Primary-Primary
Primary-Primaryการจำลองแบบอะซิงโครนัสทำงานกับ Node หลักสอง Node พร้อมกันเมื่อเปรียบเทียบกับโซลูชันหลัก-รองที่เป็นค่าเริ่มต้นจะได้รับประโยชน์จากการสร้างสมดุลของโหลดการเขียนและการกู้คืนที่ง่ายขึ้นเมื่อ Node หลักหนึ่งล้มเหลว
ตรงกันข้ามกับการตั้งค่าเริ่มต้นในการปรับขนาด Cluster หลัก-หลักจะนำไปสู่การเพิ่ม Cluster รองเมื่อสร้างแล้ว Instance รองจะมีการกระจายเท่าๆกันระหว่าง Node หลักซึ่งช่วยให้กระจายปริมาณงานการจำลองได้อย่างราบรื่นและเพิ่มจำนวนอ่านความจุของ Cluster
Cluster MariaDB Galera และ Percona XtraDB
Cluster Galera และ XtraDBTopology คือการจำลองแบบซิงโครนัสหลายหลักที่ดำเนินการในเวลาที่ยอมรับธุรกรรมโดยการออกอากาศรายการเขียนที่ตั้งค่าให้กับ Node Cluster ทั้งหมดเพื่อนำไปใช้พวกเขาตรวจสอบให้แน่ใจว่าการเขียนถูกส่งไปยัง Node ทั้งหมดใน Cluster ก่อนที่จะคอมมิตการเขียนนี้จริง
Application ผู้ใช้สามารถส่งการอ่านและเขียนไปยัง Node ใดๆใน Cluster ที่ให้ความสามารถในการขยายขนาดธุรกรรมการอ่านและเขียนการเพิ่ม Node ลงใน Cluster จะเป็นไปโดยอัตโนมัติโดยสมบูรณ์การแยก Node ออกจาก Cluster เป็นเพียงเรื่องของการลบ Node ที่ไม่จำเป็นหรือ Node ที่ล้มเหลวออกไม่จำเป็นต้องใช้ตรรกะขนาดใหญ่เพื่อแยกการอ่านและเขียนอีกต่อไปศักยภาพในการปรับขนาดสามารถนำไปใช้ได้ทันทีโดยไม่จำเป็นต้องเปลี่ยนตรรกะของ Application Galera และ XtraDB เสนอหนึ่งในการป้องกันข้อมูลสูญหายและ Database ที่ไม่สอดคล้องกันที่ดีที่สุดเนื่องจากไม่มีความล่าช้าในการจำลองข้อมูลหาก Node Cluster ตัวใดตัวหนึ่งล้มเหลว Application ผู้ใช้จะมองไม่เห็นและจะยังคงให้บริการผู้ใช้ต่อไปโดยใช้ Node อื่นที่อาจอยู่ในศูนย์ข้อมูลอื่นด้วย








