การจัดกลุ่มฐานข้อมูลคืออะไร หากคุณอนุญาตให้ฐานข้อมูลเดียวกันอยู่บนเซิร์ฟเวอร์ 2 เครื่องจะเก็บข้อมูลไว้ระหว่างการซิงค์อย่างไร และสิ่งนี้แตกต่างจาก load balancing จากมุมมองเซิร์ฟเวอร์ฐานข้อมูลอย่างไร
การจัดกลุ่มฐานข้อมูลคืออะไร หากคุณอนุญาตให้ฐานข้อมูลเดียวกันอยู่บนเซิร์ฟเวอร์ 2 เครื่องจะเก็บข้อมูลไว้ระหว่างการซิงค์อย่างไร และสิ่งนี้แตกต่างจาก load balancing จากมุมมองเซิร์ฟเวอร์ฐานข้อมูลอย่างไร
คำตอบ:
การทำคลัสเตอร์ฐานข้อมูลเป็นคำศัพท์ที่คลุมเครือเล็กน้อยผู้ขายบางรายพิจารณาว่าคลัสเตอร์ที่มีเซิร์ฟเวอร์สองเครื่องขึ้นไปใช้ที่เก็บข้อมูลร่วมกัน แต่บางกลุ่มเรียกกลุ่มของเซิร์ฟเวอร์ที่ทำซ้ำ
การจำลองแบบกำหนดวิธีการที่ชุดของเซิร์ฟเวอร์ยังคงทำข้อมูลให้ตรงกันโดยไม่ต้องแชร์ที่เก็บข้อมูลเพื่อให้สามารถกระจายทางภูมิศาสตร์ได้มีสองวิธีหลักในการดำเนินการเกี่ยวกับมัน:
การจำลองแบบหลักต้นแบบ (หรือหลายหลัก): เซิร์ฟเวอร์ใด ๆ สามารถปรับปรุงฐานข้อมูล โดยปกติจะได้รับการดูแลโดยโมดูลที่แตกต่างกันภายในฐานข้อมูล (หรือซอฟต์แวร์ที่ต่างกันทั้งหมดที่ทำงานอยู่ด้านบนของพวกเขาในบางกรณี)
ข้อเสียคือมันทำได้ยากมากและบางระบบสูญเสียคุณสมบัติ ACID เมื่ออยู่ในโหมดการจำลองแบบนี้
อัพไซด์คือมันมีความยืดหยุ่นและคุณสามารถรองรับความล้มเหลวของเซิร์ฟเวอร์ใด ๆ ในขณะที่ยังคงมีการปรับปรุงฐานข้อมูล
การเรพลิเคท master-slave: มีเพียงข้อมูลสำเนาที่เชื่อถือได้เพียงสำเนาเดียวเท่านั้นซึ่งถูกพุชไปยังเซิร์ฟเวอร์ทาส
ข้อเสียคือมันทนต่อความผิดพลาดน้อยกว่าหากนายเสียชีวิตไม่มีการเปลี่ยนแปลงในทาสอีกต่อไป
อัพไซด์คือมันทำได้ง่ายกว่ามัลติมาสเตอร์และมันมักจะรักษาคุณสมบัติของกรด
โหลดบาลานซ์เป็นแนวคิดที่แตกต่างกันมันประกอบด้วยการกระจายแบบสอบถามที่ส่งไปยังเซิร์ฟเวอร์เหล่านั้นเพื่อให้มีการกระจายโหลดเท่าที่จะทำได้ โดยปกติจะทำที่ชั้นแอปพลิเคชัน (หรือกับกลุ่มการเชื่อมต่อ) ความสัมพันธ์โดยตรงเพียงอย่างเดียวระหว่างการจำลองแบบและการปรับสมดุลโหลดคือคุณต้องจำลองแบบบางอย่างเพื่อให้สามารถโหลดยอดคงเหลือมิฉะนั้นคุณจะมีเซิร์ฟเวอร์เดียว
จากมุมมองของ SQL Server:
การทำคลัสเตอร์จะให้การตั้งค่าแบบแอกทีฟ ความหมายในคลัสเตอร์โหนด 2 โหนดหนึ่งในนั้นคือ active (ให้บริการ) และอีกโหนดหนึ่งจะอยู่เฉยๆ (รอรับช่วงต่อเมื่อโหนด active ล้มเหลว) มันเป็นความพร้อมใช้งานสูงจากมุมมองของฮาร์ดแวร์
คุณสามารถมีคลัสเตอร์ที่ใช้งานอยู่ แต่จะต้องใช้อินสแตนซ์หลายตัวของ SQL Server ที่ทำงานบนแต่ละโหนด (เช่นอินสแตนซ์ 1 บนโหนด A ไม่ผ่านอินสแตนซ์ 2 บนโหนด B และอินสแตนซ์ 1 บนโหนด B ล้มเหลวไปจนถึงอินสแตนซ์ 2 บนโหนด A)
โหลดบาลานซ์ (อย่างน้อยจากมุมมองของ SQL Server) ไม่มีอยู่ (อย่างน้อยก็ในแง่ของการปรับสมดุลโหลดเว็บเซิร์ฟเวอร์) คุณไม่สามารถสมดุลการโหลดได้ อย่างไรก็ตามคุณสามารถแยกแอปพลิเคชันของคุณให้ทำงานบนฐานข้อมูลบางตัวบนเซิร์ฟเวอร์ 1 และรันบนฐานข้อมูลบางตัวบนเซิร์ฟเวอร์ 2 เป็นต้นนี่คือความหมายหลักของ "load balancing" ในโลก SQL
การทำคลัสเตอร์จะใช้ที่เก็บข้อมูลที่ใช้ร่วมกันบางชนิด (ตัวอย่างเช่นไดรฟ์หรือ SAN) และวางฐานข้อมูลไว้ด้านหน้าสองส่วน เซิร์ฟเวอร์ส่วนหน้าจะแบ่งปันที่อยู่ IP และชื่อเครือข่ายคลัสเตอร์ที่ลูกค้าใช้ในการเชื่อมต่อและพวกเขาตัดสินใจระหว่างตนเองที่รับผิดชอบการให้บริการตามคำขอของลูกค้า
หากคุณกำลังถามเกี่ยวกับเซิร์ฟเวอร์ฐานข้อมูลเฉพาะให้เพิ่มลงในคำถามของคุณและเราสามารถเพิ่มรายละเอียดเกี่ยวกับการติดตั้งได้ แต่ที่แกนกลางนั่นคือการรวมกลุ่มคืออะไร
การจัดกลุ่มฐานข้อมูลเป็นโหมดการจำลองแบบซิงโครนัสระหว่างสองโหนดขึ้นไปที่อาจมีฟังก์ชั่นเพิ่มเติมที่เพิ่มความทนทานต่อความผิดปกติที่เพิ่มเข้ามาในระบบของคุณ การแบ่งปันอะไรหมายความว่าแต่ละโหนดไม่ได้แชร์ทรัพยากรทางกายภาพเช่นดิสก์หรือหน่วยความจำ
เท่าที่เกี่ยวข้องกับการซิงโครไนซ์ข้อมูลมีเซิร์ฟเวอร์การจัดการที่โหนดข้อมูลทั้งหมดเชื่อมต่อพร้อมกับโหนด SQL เพื่อให้บรรลุนี้ (พูดถึงเฉพาะเกี่ยวกับ MySQL)
ขณะนี้เกี่ยวกับความแตกต่าง: การทำโหลดบาลานซ์เป็นเพียงผลลัพธ์เดียวที่สามารถทำได้ผ่านการทำคลัสเตอร์ส่วนอื่น ๆ รวมถึงความพร้อมใช้งานสูง