จะทำอย่างไรเมื่อคลัสเตอร์ Always On ของคุณสูญเสียโควรัม?


9

ฉันกำลังตรวจสอบขั้นตอนการ DR บริษัท ของเราและเมื่อฉันดูออนไลน์เพื่อหาวิธีการแก้ปัญหาในกลุ่ม Always On Cluster ที่เสียโควรัมให้เปรียบเทียบ ฉันเป็นสามหน้าไปสู่ผลลัพธ์ของ Google ก่อนที่จะค้นหาโพสต์ SE แรกในเรื่องการทำสำเนากลุ่มกับการจำลองแบบของทรานแซคชันกับกลุ่มความพร้อมใช้งานซึ่งสัมผัสเพียงเบา ๆ ในเรื่องขององค์ประชุมที่หายไป

ในขณะที่ทุกคนเห็นด้วยกับโควรัมการสูญเสียที่ไม่ดีและมีคำแนะนำสำหรับการลดศักยภาพ แต่ก็ยังสามารถเกิดขึ้นได้ ฉันกำลังมองหาคำตอบที่ดีที่ได้รับการตรวจสอบไปยังเส้นทางที่ดีที่สุดในการกู้คืนจากการสูญเสียโควรัม Always On ของกลุ่ม


หากไม่ได้ใช้งานอยู่แนะนำให้ลองใช้ Windows Server 2012 R2 องค์ประชุมแบบไดนามิกพยานแบบไดนามิกและคุณสมบัติไทเบรกเกอร์ช่วยให้คุณบรรลุ "ยืนคนสุดท้าย" ในหลายกรณี sqlha.com/2013/06/06//
SQL Hammer

คำตอบ:


11

AGs ใช้ Windows Clustering ใช้ขั้นตอน WSFC สำหรับการสูญเสียโควรัม

เมื่อ WSFC ทำงานคุณสามารถบังคับ AG ได้ถ้าต้องการ ดำเนินการล้มเหลวด้วยตนเองบังคับของกลุ่มความพร้อมใช้งาน :

หลังจากบังคับให้ quorum บนคลัสเตอร์ WSFC (บังคับ quorum) คุณต้องบังคับ failover แต่ละกลุ่มความพร้อมใช้งาน (ด้วยการสูญเสียข้อมูลที่เป็นไปได้) การบังคับให้ failover จำเป็นเนื่องจากสถานะจริงของค่าคลัสเตอร์ WSFC อาจสูญหาย อย่างไรก็ตามคุณสามารถหลีกเลี่ยงการสูญเสียข้อมูลถ้าสามารถบังคับให้เกิดความล้มเหลวบนอินสแตนซ์ของเซิร์ฟเวอร์ที่จัดการโฮสต์ของแบบจำลองที่เป็นแบบจำลองหลักก่อนที่คุณบังคับโควรัมหรือกับแบบจำลองรองที่ถูกซิงโครไนซ์ก่อนที่คุณบังคับโควรัม สำหรับข้อมูลเพิ่มเติมโปรดดูที่วิธีการที่มีศักยภาพที่จะหลีกเลี่ยงการสูญเสียข้อมูลหลังจากองค์ประชุมถูกบังคับ


สิ่งนี้ทำงานกับการตั้งค่า AG แบบใหม่ที่ไม่มีคลัสเตอร์หรือไม่ ยังมีโควรัมอยู่ไหม
Shaulinator

6

จะทำอย่างไรเมื่อคลัสเตอร์ AlwaysOn ของคุณสูญเสียโควรัม?

ฉันอยู่ในสถานการณ์นี้โดยเฉพาะกับการจัดกลุ่ม Multi-subnet ซึ่งครอบคลุมประเทศต่างๆ (NY-LD-HK)

วิธีการหลีกเลี่ยงการสูญเสีย Quorum ในคลัสเตอร์หลายเครือข่ายย่อย?

  • เปลี่ยนการตั้งค่าเริ่มต้นของคลัสเตอร์เป็นสถานะการตรวจสอบที่ผ่อนคลายยิ่งขึ้นโดยเฉพาะการตั้งค่า Cluster Heartbeatโดยใช้CrossSubnetDelayหรือCrossSubnetThresholdคุณสมบัติโดยโปรแกรมแก้ไขด่วนนี้
  • AG ใช้ WSFC ซึ่ง inturn ใช้วิธีการที่ใช้องค์ประชุมในการพิจารณาความสมบูรณ์ของคลัสเตอร์ ให้แน่ใจว่าคุณเหมาะสมเลือกและกำหนดค่าองค์ประชุม บล็อกนี้โพสต์ลึกลงไปในการกำหนดค่าการลงคะแนนองค์ประชุมสำหรับ AlwaysON
  • สิ่งที่เปลี่ยนแปลงใน Windows Server 2016 ด้วยการแนะนำของกลุ่มรู้ว่าเว็บไซต์และพยานเมฆ

    ตอนนี้โหนดในกลุ่มที่ยืดออกสามารถจัดกลุ่มได้ตามสถานที่ตั้งทางกายภาพ (ไซต์) การรับรู้ไซต์ของคลัสเตอร์ช่วยเพิ่มการดำเนินการที่สำคัญในระหว่างวงจรชีวิตของคลัสเตอร์เช่นพฤติกรรมการเฟลโอเวอร์นโยบายการจัดวางการ heartbeating ระหว่างโหนดและพฤติกรรมควอรัม

    Cloud Witnessเป็นพยานองค์ประชุมแบบใหม่ของ Failover Cluster ที่ใช้ Microsoft Azure เป็นจุดตัดสิน ใช้ Microsoft Azure Blob Storage เพื่ออ่าน / เขียนไฟล์ blob ซึ่งจะใช้เป็นจุดอนุญาโตตุลาการในกรณีที่มีการแยกสมอง

จะทำอย่างไรเมื่อโควรัมหายไป?

  • หากคลัสเตอร์หยุดทำงานเนื่องจากการหยุดทำงาน / ภัยพิบัติที่ไม่ได้วางแผนไว้จำเป็นต้องทำการแทรกแซงด้วยตนเอง ผู้ดูแลระบบ windows หรือผู้ดูแลระบบคลัสเตอร์ต้องบังคับโควรัมด้วยตนเอง (เชื่อมโยงกลับไปที่คำตอบของ @ Remus ตามที่กล่าวถึงในจุดนี้)และทำให้โหนดที่มีชีวิตรอดออนไลน์

และเช่นเคยที่จะทำรากสาเหตุการวิเคราะห์ (RCA) รวบรวมหน้าต่างของกลุ่มล็อกสำหรับ AlwaysOn อาร์ซีเอ - ใช้SQL Server คลัสเตอร์ Failover วินิจฉัยบันทึก ไฟล์เหล่านี้ในไดเรกทอรี SQL Server <HOSTNAME>_<INSTANCENAME>_SQLDIAG_X_XXXXXXXXX.xelเข้าสู่ระบบมีรูปแบบต่อไปนี้:


0

เมื่อฉันมีส่วนเกี่ยวข้องกับไฟดับที่เซิร์ฟเวอร์มิเรอร์ของเราขาดการเชื่อมต่อ สิ่งหนึ่งที่ต้องกังวลคือทำให้แอปพลิเคชันของคุณชี้ไปที่อินสแตนซ์เดียว ในเครือข่ายขัดข้องคุณสามารถมีโหนดทั้งหมดของคลัสเตอร์ Always On ขึ้น แต่ไม่สามารถสื่อสารซึ่งกันและกัน คุณบังคับให้ล้มเหลวไปที่รองแล้วตราบใดที่มีการหยุดทำงานคุณสามารถมีสองโหนดหลักตั้งแต่ต้นดั้งเดิมจะไม่ทราบเกี่ยวกับความล้มเหลวบังคับ

ขึ้นอยู่กับตำแหน่งของแอ็พพลิเคชันเซิร์ฟเวอร์ของคุณการกำหนดค่าและความสามารถในการเข้าถึงเซิร์ฟเวอร์ SQL จากนั้นในทางทฤษฎีคุณสามารถมีสองโหนดที่เชื่อว่าเป็นโหนดหลักและมีการเปลี่ยนแปลงข้อมูลในเวลาเดียวกัน เมื่อคุณแก้ไขปัญหาเครือข่ายของคุณแล้วโหนดจะเชื่อมต่อการเชื่อมต่อข้อมูลทั้งหมดที่เปลี่ยนแปลงในหลักเดิมจะถูกเขียนทับจากโหนดที่บังคับให้ล้มเหลว ซึ่งอาจส่งผลให้ข้อมูลสำคัญสูญหายไป

ฉันเคยเห็นสถานการณ์ครั้งนี้ด้วย SQL 2005 และการมิเรอร์ และเราตัดสินใจที่จะไม่บังคับให้ล้มเหลวและปล่อยให้มันไม่สามารถเข้าถึงได้ เหตุผลที่ว่าในกรณีที่เลวร้ายที่สุดถ้าเราต้องสำรองข้อมูลและกู้คืนเพื่อเริ่มการทำมิเรอร์อีกครั้งมันจะเป็นกระบวนการ 2 วันสำหรับเราที่มีความเสี่ยงของการบันทึกธุรกรรมเต็มและไม่สามารถขยายดิสก์ที่มันนั่ง


Mirrroring และ AlwaysOn แตกต่างกัน ด้วย AlwaysOn คุณควร (หวังว่า) จะชี้ไปที่ผู้ฟังด้วย MultiSubnetFailover = True
James Jenkins

ฉันรู้ว่า แต่มันเป็นไปได้ที่จะมีเซิร์ฟเวอร์แยกทางภูมิศาสตร์กับเครือข่ายดับที่แอพบางตัวสามารถเข้าถึงเซิร์ฟเวอร์บางตัว แต่ไม่ใช่แอพอื่น ๆ และมีไดรเวอร์ Java ที่ใช้งานอยู่ซึ่งไม่รองรับ MultiSubnetFailover = True อาจเป็นแอพอื่น ๆ ของบุคคลที่สามเช่นกัน ฉันเห็นบางคนปฏิเสธที่จะกำหนดค่าสตริงการเชื่อมต่อของพวกเขา แม้ว่าคุณจะสามารถบังคับให้เกิดการล้มเหลวโดยไม่ต้องคำนึงถึงสถานการณ์ที่แน่นอนของคุณและจบลงด้วยเซิร์ฟเวอร์ที่เขียนได้สองเครื่องที่ไม่สามารถสื่อสารได้ และด้วยแอปพลิเคชันที่เขียนถึงทั้งคู่เนื่องจากความสามารถในการสื่อสารข้ามไซต์
Alen

PS ฉันเห็นสถานการณ์ที่เราไม่สามารถสื่อสารกับไซต์หลักของเราได้น้อยกว่าหนึ่งไมล์ แต่การเชื่อมต่อกับเว็บไซต์ DR ของเราอยู่ห่างออกไป 100 ไมล์ใช้งานได้ดี
Alen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.