แบ่งปันเลย:
สารบัญ ซ่อน
2. สถาปัตยกรรมกลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลา (Always On Availability Groups Architecture)
4. การกำหนดค่ากลุ่มความพร้อมใช้งานแบบ Always On

1. ทำความเข้าใจเกี่ยวกับกลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลา (Always On Availability Groups)

1.1 มันคืออะไรและทำงานอย่างไร

Always On Availability Groups (AG) คือ SQL Server Enterprise ความพร้อมใช้งานสูง และโซลูชันการกู้คืนระบบจากภัยพิบัติที่ทำงานในระดับฐานข้อมูล กลุ่มความพร้อมใช้งานจะรวมฐานข้อมูลผู้ใช้หนึ่งฐานขึ้นไปเข้าไว้ในหน่วยเฟลโอเวอร์เดียว และจำลองข้อมูลไปยังสำเนาสำรองได้สูงสุดแปดสำเนาผ่านการส่งบันทึกธุรกรรมอย่างต่อเนื่อง เมื่อสำเนาหลักล้มเหลว สำเนาสำรองแบบซิงโครนัสที่กำหนดไว้จะเข้ามารับช่วงต่อโดยอัตโนมัติ ทำให้สามารถเข้าถึงระบบได้ภายในไม่กี่วินาทีโดยไม่ต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกันหรือการแทรกแซงด้วยตนเอง

1.2 กลุ่มความพร้อมใช้งานแบบเปิดใช้งานตลอดเวลา (Always On Availability Groups) เทียบกับ อินสแตนซ์คลัสเตอร์แบบเฟลโอเวอร์ (Failover Cluster Instances)

SQL Server Always On ประกอบด้วยเทคโนโลยีสองอย่างที่แตกต่างกัน ได้แก่ Availability Groups (AG) และ Failover Cluster Instances (FCI):

เสมอในกลุ่มความพร้อมใช้งาน อินสแตนซ์คลัสเตอร์เฟลโอเวอร์แบบเปิดใช้งานตลอดเวลา
ขอบเขตการสลับระบบเมื่อเกิดข้อผิดพลาด ระดับฐานข้อมูล ระดับอินสแตนซ์ (ฐานข้อมูลทั้งหมดจะสลับไปใช้ระบบสำรองพร้อมกัน)
การจำลองข้อมูล การจำลองข้อมูลตามบันทึกไปยังเซิร์ฟเวอร์สำรองแต่ละเครื่อง ไม่มี — โหนดทั้งหมดใช้พื้นที่จัดเก็บข้อมูลร่วมกัน
ที่เก็บข้อมูลที่ใช้ร่วมกัน ไม่จำเป็นต้องใช้ จำเป็นต้องใช้ (เครือข่ายจัดเก็บข้อมูลแบบ SAN, iSCSI, S2D หรือ SMB)
มัธยมศึกษาที่อ่านง่าย มี (ใบกำกับภาษีเต็มรูปแบบ) ไม่
การกู้คืนระบบ ในตัว (การจำลองแบบอะซิงโครนัสข้ามไซต์) ไม่สามารถติดตั้งได้หากไม่ได้จับคู่กับ AG

เมื่อใดควรใช้แต่ละอย่าง: ใช้ FCI เมื่อคุณต้องการระบบสำรองข้อมูลระดับอินสแตนซ์และมีโครงสร้างพื้นฐานพื้นที่จัดเก็บข้อมูลแบบใช้ร่วมกันอยู่แล้ว ใช้ AG เมื่อคุณต้องการความละเอียดระดับฐานข้อมูล เซิร์ฟเวอร์สำรองที่อ่านได้ หรือการกู้คืนจากภัยพิบัติ เพื่อการป้องกันที่สมบูรณ์ที่สุด ให้ผสานทั้งสองอย่างเข้าด้วยกัน: รันแต่ละสำเนาเป็นโหนด FCI และเชื่อมโยงเข้าด้วยกันใน AG

1.3 สิทธิประโยชน์และข้อจำกัด

ประโยชน์ที่ได้รับ:

  • การสลับระบบสำรองอัตโนมัติด้วยค่า Recovery Time Objective (RTO) ที่ใกล้ศูนย์สำหรับสำเนาแบบซิงโครนัส
  • ไม่มีการสูญเสียข้อมูล (Recovery Point Objective (RPO) = 0) ในโหมดการยืนยันแบบซิงโครนัส
  • ไม่จำเป็นต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน — แต่ละสำเนาใช้พื้นที่จัดเก็บข้อมูลภายในเครื่องที่เป็นอิสระต่อกัน
  • เซิร์ฟเวอร์รองที่อ่านง่ายจะช่วยลดภาระงานด้านการรายงานและการสำรองข้อมูลจากเซิร์ฟเวอร์หลัก
  • รองรับทั้งระบบความพร้อมใช้งานสูง (High Availability: HA) ในพื้นที่ และระบบการกู้คืนจากภัยพิบัติ (Disaster Recovery: DR) ข้ามไซต์ ภายในการกำหนดค่าเดียว

ข้อ จำกัด :

  • จำเป็นต้องใช้ Windows Server Failover Clustering บนสำเนาทั้งหมด;
  • รุ่น Enterprise Edition สำหรับฟีเจอร์ครบครัน (รุ่น Standard Edition รองรับ Basic AG แต่มีข้อจำกัดหลายประการ)
  • โหมดการยืนยันแบบซิงโครนัสจะเพิ่มความล่าช้าในการดำเนินการเขียน โดยแปรผันตามเวลาไป-กลับของเครือข่าย
  • การเข้าสู่ระบบ งาน SQL Agent และเซิร์ฟเวอร์ที่เชื่อมโยงจะไม่ได้รับการซิงโครไนซ์โดยอัตโนมัติ SQL Server ปี 2019 และก่อนหน้านั้น (แก้ไขแล้วใน SQL Server (ปี 2022 มีกลุ่มความพร้อมใช้งาน)

2. สถาปัตยกรรมกลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลา (Always On Availability Groups Architecture)

2.1 ส่วนประกอบหลักและแนวคิด

2.1.1 ฐานข้อมูลความพร้อมใช้งาน

ฐานข้อมูลความพร้อมใช้งาน (Availability databases) คือฐานข้อมูลของผู้ใช้ที่เข้าร่วมในกลุ่มความพร้อมใช้งาน ฐานข้อมูลเหล่านี้ต้องเป็นไปตามข้อกำหนดเฉพาะ ได้แก่ ต้องใช้โมเดลการกู้คืนแบบเต็ม (Full recovery model) มีการสำรองข้อมูลแบบเต็ม (Full backup) และต้องมีอยู่ในสำเนาหลัก (Primary replica) ก่อนที่จะถูกเพิ่มเข้าไปในกลุ่มความพร้อมใช้งาน

เมื่อฐานข้อมูลเข้าร่วมกลุ่มความพร้อมใช้งาน (Availability Group) ฐานข้อมูลนั้นจะกลายเป็นส่วนหนึ่งของชุดที่ซิงโครไนซ์กัน ซึ่งจะทำการสลับการทำงาน (failover) ไปเป็นหน่วยเดียวกัน ฐานข้อมูลทั้งหมดในกลุ่มความพร้อมใช้งานจะใช้สถานะการสลับการทำงาน (failover state) เดียวกัน ซึ่งหมายความว่าหากสำเนาหลัก (primary replica) ล้มเหลว ฐานข้อมูลทั้งหมดจะสลับการทำงานไปยังสำเนาสำรอง (secondary replica) เดียวกันพร้อมกัน ซึ่งจะช่วยให้มั่นใจได้ถึงความสม่ำเสมอสำหรับแอปพลิเคชันที่ต้องพึ่งพาฐานข้อมูลที่เกี่ยวข้องกันหลายฐาน

2.1.2 ความพร้อมใช้งานของสำเนา

สำเนาที่พร้อมใช้งานคือ SQL Server กลุ่มความพร้อมใช้งาน (Availability Group) คืออินสแตนซ์ที่โฮสต์สำเนาของฐานข้อมูลความพร้อมใช้งาน แต่ละสำเนาจะเก็บรักษาสำเนาทางกายภาพของฐานข้อมูลไว้เอง โดยซิงโครไนซ์ผ่านการส่งบันทึกธุรกรรม (Transaction Log Record Shipping) กลุ่มความพร้อมใช้งานสามารถมีสำเนาได้สูงสุดเก้าสำเนา ได้แก่ สำเนาหลักหนึ่งสำเนาและสำเนาสำรองสูงสุดแปดสำเนา

2.1.3 แบบจำลองหลัก

สำเนาหลัก (Primary Replica) ทำหน้าที่เป็นที่เก็บสำเนาฐานข้อมูลความพร้อมใช้งานแบบอ่านและเขียน การแก้ไขข้อมูลทั้งหมด (INSERT, UPDATE, DELETE) จะเกิดขึ้นบนสำเนาหลัก แอปพลิเคชันไคลเอ็นต์จะเชื่อมต่อกับสำเนาหลักสำหรับการดำเนินการเขียนทั้งหมด และโดยค่าเริ่มต้นสำหรับการดำเนินการอ่านด้วยเช่นกัน

2.1.4 สำเนาเสริม

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

อินโฟกราฟิกแสดงส่วนประกอบหลักและแนวคิดของ SQL Server กลุ่มความพร้อมใช้งานที่พร้อมใช้งานเสมอ

2.2 โหมดการใช้งาน

2.2.1 โหมดการยืนยันแบบซิงโครนัส

โหมดการยืนยันแบบซิงโครนัส (Synchronous-commit mode) ให้การป้องกันการสูญเสียข้อมูลเป็นศูนย์ โดยกำหนดให้สำเนาหลักต้องรอการยืนยันว่าบันทึกธุรกรรมได้รับการบันทึกไว้ในสำเนาสำรองเรียบร้อยแล้วก่อนที่จะยืนยันธุรกรรม โหมดนี้มีความสำคัญอย่างยิ่งสำหรับการกำหนดค่าที่มีความพร้อมใช้งานสูง ซึ่งการสูญเสียข้อมูลเป็นสิ่งที่ยอมรับไม่ได้

2.2.2 โหมดการยืนยันแบบอะซิงโครนัส

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

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

อินโฟกราฟิกของ SQL Server โหมดความพร้อมใช้งานแบบเปิดใช้งานตลอดเวลา รวมถึงโหมดการยืนยันแบบซิงโครนัสและโหมดการยืนยันแบบอะซิงโครนัส

2.3 ประเภทการสลับระบบเมื่อเกิดข้อผิดพลาด

2.3.1 การสลับระบบอัตโนมัติเมื่อเกิดข้อผิดพลาด

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

การสลับระบบอัตโนมัติ (Automatic failover) จำเป็นต้องใช้โหมดการยืนยันแบบซิงโครนัส (synchronous-commit mode) เพื่อให้มั่นใจได้ว่าข้อมูลจะไม่สูญหาย เมื่อเปิดใช้งานแล้ว กลุ่มความพร้อมใช้งานจะตรวจสอบสถานะของสำเนาหลักอย่างต่อเนื่อง หากสำเนาหลักไม่ตอบสนองหรือล้มเหลว คลัสเตอร์การสลับระบบของ Windows Server จะเริ่มต้นการสลับระบบอัตโนมัติไปยังสำเนาสำรองที่กำหนดไว้

2.3.2 การสลับระบบอัตโนมัติด้วยตนเอง

การสลับระบบสำรองด้วยตนเอง (Manual failover) ช่วยให้ผู้ดูแลระบบสามารถสลับบทบาทของสำเนาหลักไปยังสำเนาสำรองได้โดยเจตนา ซึ่งโดยทั่วไปแล้วมักใช้เพื่อการบำรุงรักษาหรือการทดสอบตามแผน แตกต่างจากการสลับระบบสำรองอัตโนมัติ (Automatic failover) การสลับระบบสำรองด้วยตนเองต้องอาศัยการกระทำโดยชัดแจ้งจากผู้ดูแลระบบเพื่อเริ่มต้น

การสลับระบบสำรองด้วยตนเองโดยไม่สูญเสียข้อมูลสามารถทำได้สำหรับสำเนาข้อมูลแบบซิงโครนัสคอมมิต ผู้ดูแลระบบเริ่มต้นการสลับระบบสำรองผ่านทาง SQL Server Management Studio, Transact-SQL หรือ PowerShell เซิร์ฟเวอร์จำลองหลักจะประมวลผลธุรกรรมปัจจุบันให้เสร็จสิ้น ส่งบันทึกข้อมูลที่เหลือทั้งหมดไปยังเซิร์ฟเวอร์จำลองรองเป้าหมาย และรอการยืนยันก่อนที่จะถ่ายโอนบทบาทหลัก

การสลับไปใช้ระบบสำรองด้วยตนเอง (Manual failover) สามารถทำได้กับสำเนาแบบอะซิงโครนัสคอมมิต (asynchronous-commit replicas) เช่นกัน แต่ต้องใช้การสลับไปใช้ระบบสำรองแบบบังคับ ซึ่งอาจทำให้ข้อมูลสูญหายได้ ผู้ดูแลระบบควรใช้การสลับไปใช้ระบบสำรองด้วยตนเองแบบบังคับเฉพาะในสถานการณ์ภัยพิบัติจริง ๆ เมื่อสำเนาหลักไม่พร้อมใช้งาน และการสูญเสียข้อมูลเป็นที่ยอมรับได้เมื่อเทียบกับเวลาหยุดทำงานที่ยาวนาน

2.3.3 การสลับระบบเมื่อเกิดข้อผิดพลาด (Forced Failover)

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

อินโฟกราฟิกของ SQL Server ประเภทการทำงานสำรองที่พร้อมใช้งานตลอดเวลา รวมถึงการสลับระบบอัตโนมัติ การสลับระบบด้วยตนเอง และการสลับระบบแบบบังคับ

2.4 การซิงโครไนซ์ข้อมูล

2.4.1 วิธีการทำงานของการซิงโครไนซ์ข้อมูล

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

2.4.2 บันทึกธุรกรรมและการรักษาความปลอดภัย

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

อินโฟกราฟิกของ SQL Server กระบวนการซิงโครไนซ์ข้อมูลทำงานอยู่ตลอดเวลา

2.5 แบบจำลองทุติยภูมิที่อ่านได้และปรับขนาดได้

2.5.1 การถ่ายโอนภาระงานแบบอ่านอย่างเดียว

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

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

2.5.2 การดำเนินการสำรองข้อมูลบนสำเนาสำรอง

การสำรองข้อมูลบนสำเนาสำรองช่วยลดภาระการรับส่งข้อมูล (I/O) และภาระการประมวลผลของหน่วยประมวลผลกลาง (CPU) บนสำเนาหลัก ทำให้สำเนาหลักสามารถมุ่งเน้นไปที่งานด้านธุรกรรมได้ ความสามารถนี้ช่วยให้องค์กรต่างๆ สามารถตอบสนองความต้องการด้านการสำรองข้อมูลได้โดยไม่กระทบต่อประสิทธิภาพการทำงานจริง

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

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ SQL Server การสำรองข้อมูล โปรดดูที่หน้าของเรา คู่มือฉบับสมบูรณ์.

อินโฟกราฟิกแสดงขนาดการอ่านและสำเนาทุติยภูมิที่อ่านได้ใน SQL Server เสมอใน

2.6 ผู้ฟังกลุ่มความพร้อมใช้งาน

2.6.1 ผู้ฟังคืออะไร?

ตัวรับฟังกลุ่มความพร้อมใช้งาน (Availability Group Listener) คือชื่อเครือข่ายเสมือน (VNN) และที่อยู่ IP ที่แอปพลิเคชันไคลเอ็นต์ใช้ในการเชื่อมต่อกับฐานข้อมูลกลุ่มความพร้อมใช้งาน ตัวรับฟังจะเปลี่ยนเส้นทางการเชื่อมต่อไปยังสำเนาหลักปัจจุบันโดยอัตโนมัติ ทำให้แอปพลิเคชันไม่จำเป็นต้องติดตามว่าเซิร์ฟเวอร์ใดเป็นเซิร์ฟเวอร์หลักในขณะนี้

2.6.2 การกำหนดเส้นทางการเชื่อมต่อไคลเอ็นต์

การกำหนดเส้นทางการเชื่อมต่อไคลเอ็นต์ผ่านตัวรับฟัง (listener) รองรับทั้งการเชื่อมต่อแบบอ่านเขียนและอ่านอย่างเดียว ตัวรับฟังจะตรวจสอบคำขอเชื่อมต่อและกำหนดเส้นทางไปยังสำเนาที่เหมาะสมตามเจตนาของแอปพลิเคชัน

อินโฟกราฟิกของ SQL Server ผู้ฟังกลุ่มที่พร้อมใช้งานตลอดเวลา

3. คุณสมบัติเบื้องต้นและข้อกำหนด

3.1 การทำคลัสเตอร์เฟลโอเวอร์ของ Windows Server สำหรับกลุ่มความพร้อมใช้งาน

3.1.1 หลักการพื้นฐานของการทำคลัสเตอร์เฟลโอเวอร์ของ Windows Server

Windows Server Failover Clustering (WSFC) เป็นรากฐานของ Always On Availability Groups โดยทำหน้าที่จัดการสมาชิกคลัสเตอร์ การตรวจสอบสถานะ และการประสานงานการเฟลโอเวอร์ แตกต่างจาก Failover Cluster Instances Availability Groups ใช้ WSFC เฉพาะสำหรับการประสานงานคลัสเตอร์เท่านั้น ไม่ได้ใช้สำหรับการจัดการพื้นที่จัดเก็บข้อมูลร่วมกัน

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

อินโฟกราฟิกแสดงหลักการพื้นฐานของ Windows Server Failover Clustering (WSFC) SQL Server เสมอในกลุ่มความพร้อมใช้งาน

3.1.2 การกำหนดค่าควอรัมคลัสเตอร์

ค่าควอรัมของคลัสเตอร์จะกำหนดว่าโหนดใดบ้างที่สามารถทำงานได้เมื่อเกิดปัญหาการเชื่อมต่อเครือข่าย ป้องกันสถานการณ์ "สปลิตเบรน" ที่โหนดหลายโหนดต่างอ้างสิทธิ์ในการเป็นโหนดหลักโดยอิสระ การกำหนดค่าควอรัมจะกำหนดว่าอะไรคือคะแนนเสียงข้างมากสำหรับการตัดสินใจของคลัสเตอร์

มีโหมดควอรัมหลายแบบให้เลือกใช้สำหรับกลุ่มความพร้อมใช้งาน:

  • Node Majority ใช้เฉพาะคะแนนโหวตจากโหนดในคลัสเตอร์เท่านั้น และทำงานได้ดีกับคลัสเตอร์ที่มีจำนวนโหนดเป็นเลขคี่
  • Node and File Share Majority เพิ่มการลงคะแนนเสียงรับรองการแชร์ไฟล์ ซึ่งเหมาะสำหรับคลัสเตอร์ที่มีจำนวนโหนดเป็นเลขคู่
  • Node and Disk Majority ใช้ดิสก์วิทธิ์ แต่ไม่ค่อยนิยมใช้กับกลุ่มความพร้อมใช้งาน เนื่องจากไม่จำเป็นต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน

อินโฟกราฟิกแสดงการกำหนดค่าควอรัมคลัสเตอร์สำหรับ SQL Server เสมอในกลุ่มความพร้อมใช้งาน

3.1.3 การจัดกลุ่มคลัสเตอร์แบบหลายซับเน็ต

การจัดกลุ่มคลัสเตอร์แบบหลายซับเน็ตช่วยให้สำเนาของกลุ่มความพร้อมใช้งานสามารถกระจายอยู่บนซับเน็ตเครือข่ายที่แตกต่างกัน ซึ่งรองรับการใช้งานแบบกระจายทางภูมิศาสตร์ในศูนย์ข้อมูลต่างๆ ความสามารถนี้มีความสำคัญอย่างยิ่งสำหรับการกำหนดค่าการกู้คืนจากภัยพิบัติที่สำเนาอยู่คนละสถานที่

อินโฟกราฟิกแสดงการจัดกลุ่มแบบหลายซับเน็ตใน SQL Server เสมอในกลุ่มความพร้อมใช้งาน

3.2 SQL Server ข้อกำหนดของฉบับพิมพ์

3.2.1 คุณสมบัติของรุ่น Enterprise

SQL Server รุ่น Enterprise Edition มอบฟังก์ชันการทำงานของกลุ่มความพร้อมใช้งานอย่างเต็มรูปแบบโดยไม่มีข้อจำกัด รุ่น Enterprise Edition รองรับสำเนาสำรองได้สูงสุดแปดชุด สำเนาสำรองที่อ่านได้ การสร้างสำเนาเริ่มต้นอัตโนมัติ กลุ่มความพร้อมใช้งานแบบกระจาย และคุณสมบัติขั้นสูงทั้งหมด

3.2.2 คุณสมบัติของรุ่นมาตรฐาน (กลุ่มความพร้อมใช้งานพื้นฐาน)

SQL Server เวอร์ชันมาตรฐานปี 2016 และเวอร์ชันที่ใหม่กว่ารองรับกลุ่มความพร้อมใช้งานพื้นฐาน (Basic Availability Groups) แต่มีข้อจำกัดที่สำคัญ กลุ่มความพร้อมใช้งานพื้นฐานให้ฟังก์ชันการทำงานความพร้อมใช้งานสูงขั้นพื้นฐานในราคาที่ต่ำกว่า เหมาะสำหรับองค์กรที่มีความต้องการที่เรียบง่ายกว่า

4. การกำหนดค่ากลุ่มความพร้อมใช้งานแบบ Always On

4.1 การเตรียมความพร้อมด้านสภาพแวดล้อม

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

4.1.1 การตั้งค่าตัวควบคุมโดเมน

ตัวควบคุมโดเมน Active Directory ต้องได้รับการกำหนดค่าเพื่อรองรับคลัสเตอร์กลุ่มความพร้อมใช้งาน และ SQL Server บัญชีบริการ

  1. เข้าสู่ระบบตัวควบคุมโดเมนโดยใช้ข้อมูลประจำตัวของผู้ดูแลระบบโดเมน
  2. จุดเปิด จัดการเซิร์ฟเวอร์ และไปที่ เครื่องมือ -> ผู้ใช้ Active Directory และคอมพิวเตอร์.
  3. สร้างหน่วยงานสำหรับ SQL Server หากไม่มีวัตถุใดอยู่เลย
  4. ตรวจสอบว่าอ็อบเจ็กต์คอมพิวเตอร์สำหรับโหนดคลัสเตอร์ทั้งหมดมีอยู่ใน Active Directory แล้ว
  5. ตรวจสอบให้แน่ใจว่าบริการระบบชื่อโดเมน (DNS) ได้รับการกำหนดค่าอย่างถูกต้อง และชื่อเซิร์ฟเวอร์ทั้งหมดสามารถระบุได้อย่างถูกต้อง

ตั้งค่าตัวควบคุมโดเมน Active Directory ใน Active Directory Users and Computers

4.1.2 การสร้างบัญชีบริการ

สร้างบัญชีบริการ Active Directory เฉพาะสำหรับ SQL Server บริการต่างๆ บนแต่ละโหนด

  1. จุดเปิด ผู้ใช้ Active Directory และคอมพิวเตอร์ บนตัวควบคุมโดเมน
  2. คลิกขวาที่หน่วยงานที่เกี่ยวข้องแล้วเลือก ใหม่ -> ผู้ใช้งาน.
  3. ป้อนชื่อบัญชีบริการ (ตัวอย่างเช่น svc_SQLServer) และตั้งค่า ชื่อผู้ใช้เข้าสู่ระบบ.
  4. คลิก ถัดไป และตั้งรหัสผ่านที่ปลอดภัย
  5. เลือก ผู้ใช้ไม่สามารถเปลี่ยนรหัสผ่านได้ และ รหัสผ่านไม่มีวันหมดอายุ.
  6. คลิก ถัดไป แล้วก็ เสร็จสิ้น เพื่อสร้างบัญชี
  7. ทำซ้ำขั้นตอนนี้สำหรับบัญชีบริการเพิ่มเติมใดๆ ที่ต้องการ (SQL Server เอเจนต์, SSRS เป็นต้น)

สร้างบัญชีผู้ใช้ Active Directory ใหม่

4.1.3 การกำหนดค่าสิทธิ์ผู้ดูแลระบบ

บัญชีบริการและบัญชีที่ใช้ในการกำหนดค่า SQL Server ต้องมีสิทธิ์การเข้าถึงที่เหมาะสมบนโหนดคลัสเตอร์ทั้งหมด

  1. ล็อกอินเข้าสู่เซิร์ฟเวอร์แต่ละโหนดของคลัสเตอร์
  2. จุดเปิด การจัดการคอมพิวเตอร์ จาก เริ่มต้น เมนูหรือตัวจัดการเซิร์ฟเวอร์
  3. แสดง ผู้ใช้และกลุ่มท้องถิ่น และเลือก Groups.
  4. คลิกขวาที่ ผู้ดูแลระบบ และเลือก อสังหาริมทรัพย์ .
  5. คลิก เพิ่ม และป้อนชื่อบัญชีบริการ
  6. คลิก ตรวจสอบชื่อ เพื่อยืนยันบัญชี จากนั้นคลิก OK.
  7. คลิก OK เพื่อปิดหน้าต่างการตั้งค่าคุณสมบัติของผู้ดูแลระบบ
  8. ทำซ้ำขั้นตอนนี้กับโหนดคลัสเตอร์ทั้งหมด

กำหนดค่าสิทธิ์ผู้ดูแลระบบสำหรับบัญชีผู้ใช้ Active Directory ใหม่

4.2 การติดตั้งและการกำหนดค่า WSFC

ต้องติดตั้งและกำหนดค่า Windows Server Failover Clustering บนโหนดทั้งหมดก่อนจึงจะสามารถเปิดใช้งาน Always On Availability Groups ได้

4.2.1 การติดตั้งคุณสมบัติคลัสเตอร์แบบเฟลโอเวอร์

ติดตั้งฟีเจอร์ Failover Clustering บนเซิร์ฟเวอร์แต่ละเครื่องที่จะเข้าร่วมในกลุ่มความพร้อมใช้งาน (Availability Group)

  1. จุดเปิด จัดการเซิร์ฟเวอร์ บนโหนดคลัสเตอร์แรก
  2. คลิก จัดการ -> เพิ่มบทบาทและคุณสมบัติ.
  3. คลิก ถัดไป ผ่านหน้าจอแนะนำต่างๆ
  4. เลือก การติดตั้งตามบทบาทหรือตามคุณสมบัติ และคลิก ถัดไป.
  5. เลือกเซิร์ฟเวอร์ภายในเครื่องแล้วคลิก ถัดไป.
  6. ข้ามหน้าจอบทบาทแล้วคลิก ถัดไป.
  7. ในหน้าจอคุณสมบัติ ให้เลือก คลัสเตอร์แบบเฟลโอเวอร์.
  8. คลิก เพิ่มคุณสมบัติ เมื่อถูกถามให้รวมเครื่องมือการจัดการ
  9. คลิก ถัดไป แล้วก็ การติดตั้ง.
  10. รอจนกว่าการติดตั้งจะเสร็จสมบูรณ์แล้วคลิก ปิดหน้านี้.
  11. ทำซ้ำขั้นตอนนี้กับเซิร์ฟเวอร์ทั้งหมดที่จะเข้าร่วมในคลัสเตอร์

ติดตั้งระบบคลัสเตอร์แบบเฟลโอเวอร์สำหรับ SQL Server เสมอใน

4.2.2 การสร้างคลัสเตอร์เฟลโอเวอร์

หลังจากติดตั้งฟีเจอร์ Failover Clustering บนโหนดทั้งหมดแล้ว ให้สร้างคลัสเตอร์จากโหนดใดโหนดหนึ่ง

  1. จุดเปิด ตัวจัดการคลัสเตอร์เฟลโอเวอร์ จาก จัดการเซิร์ฟเวอร์ -> เครื่องมือ.
  2. คลิก สร้างคลัสเตอร์ ในบานหน้าต่างการดำเนินการ
  3. คลิก ถัดไป ในหน้า "ก่อนเริ่มต้น"
  4. คลิก หมวดหมู่สินค้า และเพิ่มเซิร์ฟเวอร์ทั้งหมดที่จะเป็นโหนดคลัสเตอร์
  5. คลิก ถัดไป หลังจากเพิ่มโหนดทั้งหมดแล้ว
  6. ทิ้ง เรียกใช้การทดสอบทั้งหมด (แนะนำ) เลือกแล้วคลิก ถัดไป.
  7. ตรวจสอบผลการทดสอบการตรวจสอบความถูกต้องและแก้ไขข้อผิดพลาดหรือคำเตือนใดๆ
  8. คลิก เสร็จสิ้น หลังจากตรวจสอบความถูกต้องเสร็จสมบูรณ์แล้ว
  9. ระบุชื่อคลัสเตอร์และที่อยู่ IP
  10. ยกเลิกการเลือก เพิ่มพื้นที่จัดเก็บข้อมูลที่เหมาะสมทั้งหมดลงในคลัสเตอร์ เนื่องจากไม่จำเป็นต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน
  11. คลิก ถัดไป และตรวจสอบการยืนยันอีกครั้ง
  12. คลิก เสร็จสิ้น เพื่อสร้างคลัสเตอร์

สร้างคลัสเตอร์สำรอง (Failover Cluster) ในตัวจัดการคลัสเตอร์สำรอง (Failover Cluster Manager)

4.2.3 การตรวจสอบความถูกต้องของการกำหนดค่าคลัสเตอร์

ตรวจสอบความถูกต้องของการตั้งค่าคลัสเตอร์เพื่อให้แน่ใจว่าโหนดทั้งหมดสามารถสื่อสารกันได้อย่างถูกต้องและคลัสเตอร์ทำงานได้อย่างถูกต้อง

  1. In ตัวจัดการคลัสเตอร์เฟลโอเวอร์คลิกขวาที่ชื่อคลัสเตอร์
  2. เลือก ตรวจสอบคลัสเตอร์ จากเมนู
  3. คลิก ถัดไป ในหน้า "ก่อนเริ่มต้น"
  4. เลือก เรียกใช้การทดสอบทั้งหมด (แนะนำ) และคลิก ถัดไป.
  5. คลิก ถัดไป เพื่อเริ่มการทดสอบการตรวจสอบความถูกต้อง
  6. ตรวจสอบรายงานการตรวจสอบความถูกต้องเมื่อการทดสอบเสร็จสิ้น
  7. แก้ไขข้อผิดพลาดหรือคำเตือนใดๆ ที่ระบุไว้ในรายงาน
  8. คลิก เสร็จสิ้น เพื่อปิดตัวช่วยสร้าง

ตรวจสอบความถูกต้องของคลัสเตอร์เฟลโอเวอร์ในตัวจัดการคลัสเตอร์เฟลโอเวอร์

ไม่เคยติดตั้ง SQL Server สำหรับกลุ่มความพร้อมใช้งาน

การติดตั้ง SQL Server บนแต่ละโหนดที่จะเข้าร่วมในกลุ่มความพร้อมใช้งานโดยใช้ตัวเลือกการติดตั้งแบบสแตนด์อโลน

  1. เรียกใช้ SQL Server สื่อการติดตั้งบนโหนดแรก
  2. เลือก ใหม่ SQL Server การติดตั้งแบบแยกเดี่ยว.
  3. ป้อนรหัสผลิตภัณฑ์หรือเลือกเวอร์ชันทดลองใช้งาน
  4. ยอมรับเงื่อนไขใบอนุญาตแล้วคลิก ถัดไป.
  5. ดำเนินการตรวจสอบข้อกำหนดเบื้องต้นให้ครบถ้วนและแก้ไขปัญหาใด ๆ ที่พบ
  6. ในหน้าการเลือกคุณสมบัติ ให้เลือก บริการเอนจินฐานข้อมูล.
  7. กำหนดค่าชื่ออินสแตนซ์ (ใช้ชื่ออินสแตนซ์เดียวกันในทุกโหนด)
  8. ในหน้าการกำหนดค่าเซิร์ฟเวอร์ ให้ระบุข้อมูลประจำตัวของบัญชีบริการ
  9. กำหนดค่าประเภทการเริ่มต้นบริการดังนี้ อัตโนมัติ.
  10. ในหน้าการกำหนดค่ากลไกฐานข้อมูล ให้เลือกโหมดการตรวจสอบสิทธิ์
  11. เพิ่มบัญชีผู้ดูแลระบบ
  12. กำหนดค่าไดเร็กทอรีข้อมูลโดยใช้เส้นทางที่สอดคล้องกันในทุกโหนด
  13. ทำการติดตั้งให้เสร็จสมบูรณ์และตรวจสอบความสำเร็จ
  14. ทำการติดตั้งซ้ำบนโหนดคลัสเตอร์อื่นๆ ทั้งหมด โดยใช้การตั้งค่าที่เหมือนกันทุกประการ

ใหม่ SQL Server การติดตั้งแบบแยกเดี่ยว

4.4 การเปิดใช้งานคุณสมบัติ Always On Availability Groups

หลังจากการติดตั้ง SQL Server บนทุกโหนด ให้เปิดใช้งานคุณสมบัติ Always On Availability Groups บนแต่ละอินสแตนซ์

4.4.1 การเปิดใช้งานผ่าน SQL Server เครื่องมือจัดการการกำหนดค่า

ใช้ SQL Server ใช้ Configuration Manager เพื่อเปิดใช้งาน Always On Availability Groups ผ่านทางอินเทอร์เฟซแบบกราฟิก

  1. จุดเปิด SQL Server เครื่องมือจัดการการกำหนดค่า ที่โหนดแรก
  2. แสดง SQL Server บริการของเรา ในบานหน้าต่างด้านซ้าย
  3. คลิกขวาที่ SQL Server อินสแตนซ์และเลือก อสังหาริมทรัพย์ .
  4. คลิก ความพร้อมใช้งานสูงตลอดเวลา แถบ
  5. ตรวจสอบ เปิดใช้งานกลุ่มความพร้อมใช้งาน AlwaysOn.
  6. ตรวจสอบว่าชื่อคลัสเตอร์เฟลโอเวอร์ของ Windows ถูกต้องหรือไม่
  7. คลิก OK เพื่อบันทึกการเปลี่ยนแปลง
  8. คลิก OK เมื่อมีข้อความแจ้งเตือนว่าต้องรีสตาร์ทบริการ
  9. คลิกขวาที่ SQL Server บริการและการเลือก เริ่มต้นใหม่.
  10. รอจนกว่าบริการจะเริ่มต้นใหม่สำเร็จ
  11. ทำซ้ำขั้นตอนนี้กับโหนดคลัสเตอร์ทั้งหมด

ทำให้สามารถ SQL Server กลุ่มความพร้อมใช้งานแบบเปิดตลอดเวลาใน SQL Server เครื่องมือจัดการการกำหนดค่า

4.4.2 การเปิดใช้งานผ่าน PowerShell

PowerShell มีวิธีการเขียนสคริปต์เพื่อเปิดใช้งาน Always On Availability Groups บนโหนดหลายๆ โหนด

  1. เปิด PowerShell ในฐานะผู้ดูแลระบบบนโหนดแรก
  2. นำเข้า SQL Server โมดูล PowerShell:
    Import-Module SQLPS -DisableNameChecking
  3. เปิดใช้งานกลุ่มความพร้อมใช้งานแบบ Always On:
    Enable-SqlAlwaysOn -ServerInstance "ServerName\InstanceName" -Force
  4. บริการจะรีสตาร์ทโดยอัตโนมัติเมื่อใช้พารามิเตอร์ Force
  5. ตรวจสอบว่าเปิดใช้งานฟีเจอร์นี้แล้ว:
    Get-ItemProperty "SQLSERVER:\SQL\ServerName\InstanceName" | Select-Object IsHadrEnabled
  6. ทำซ้ำขั้นตอนนี้สำหรับแต่ละโหนดคลัสเตอร์ โดยแทนที่ด้วยชื่อเซิร์ฟเวอร์และชื่ออินสแตนซ์ที่เหมาะสม

4.4.3 การตรวจสอบว่าฟีเจอร์นี้เปิดใช้งานอยู่หรือไม่

ตรวจสอบให้แน่ใจว่าได้เปิดใช้งาน Always On Availability Groups บนทุกอินสแตนซ์แล้ว ก่อนดำเนินการกำหนดค่าต่อไป

  1. เชื่อมต่อกับแต่ละ SQL Server ตัวอย่างเช่น การใช้ SQL Server สตูดิโอการจัดการ
  2. เปิดหน้าต่างแบบสอบถามใหม่และดำเนินการดังนี้:
    SELECT SERVERPROPERTY('IsHadrEnabled')
  3. ตรวจสอบว่าผลลัพธ์เป็น 1 (เปิดใช้งาน)
  4. ตรวจสอบว่า SQL Server อินสแตนซ์จะปรากฏใน Failover Cluster Manager ภายใต้บทบาทของคลัสเตอร์
  5. ตรวจสอบว่าเอนด์พอยต์ของกลุ่มความพร้อมใช้งานมีอยู่จริงหรือไม่ โดยดำเนินการตามคำสั่งต่อไปนี้:
    SELECT * FROM sys.endpoints WHERE type_desc = 'DATABASE_MIRRORING'
  6. หากปลายทางดังกล่าวไม่มีอยู่ ระบบจะสร้างขึ้นในระหว่างการสร้างกลุ่มความพร้อมใช้งาน

4.5 การเตรียมฐานข้อมูลสำหรับกลุ่มความพร้อมใช้งาน

ฐานข้อมูลต้องเป็นไปตามข้อกำหนดเฉพาะก่อนจึงจะสามารถเพิ่มลงในกลุ่มความพร้อมใช้งานได้

4.5.1 ข้อกำหนดของแบบจำลองการกู้คืนฐานข้อมูล

เปลี่ยนรูปแบบการกู้คืนฐานข้อมูลเป็น FULL บนสำเนาหลักก่อนที่จะเพิ่มลงในกลุ่มความพร้อมใช้งาน

  1. เชื่อมต่อกับสำเนาหลักโดยใช้ SQL Server สตูดิโอการจัดการ
  2. คลิกขวาที่ฐานข้อมูลแล้วเลือก อสังหาริมทรัพย์ .
  3. เลือก ตัวเลือก หน้า.
  4. เปลี่ยนแปลง แบบจำลองการกู้คืน ไปยัง เต็ม.
  5. คลิก OK เพื่อบันทึกการเปลี่ยนแปลง
  6. หรืออีกทางเลือกหนึ่งคือใช้ Transact-SQL:
    ALTER DATABASE DatabaseName SET RECOVERY FULL;

เปลี่ยนรูปแบบการกู้คืนฐานข้อมูลเป็นแบบเต็ม

4.5.2 การสำรองข้อมูลฐานข้อมูลแบบเต็มรูปแบบ

ทำการสำรองข้อมูลฐานข้อมูลทั้งหมดเพื่อสร้างห่วงโซ่การสำรองข้อมูลที่จำเป็นสำหรับกลุ่มความพร้อมใช้งาน (Availability Groups)

  1. In SQL Server คลิกขวาที่ฐานข้อมูลใน Management Studio
  2. เลือก งาน -> Back Up.
  3. ตรวจสอบ ประเภทการสำรองข้อมูล ถูกตั้งค่าเป็น เต็ม.
  4. เลือกปลายทางสำหรับการสำรองข้อมูล หรือเพิ่มปลายทางใหม่
  5. คลิก OK เพื่อทำการสำรองข้อมูล
  6. หรืออีกทางเลือกหนึ่งคือใช้ Transact-SQL:
    BACKUP DATABASE DatabaseName TO DISK = 'C:\Backup\DatabaseName.bak';

สร้างการสำรองข้อมูลแบบเต็มของ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ

4.5.3 การสำรองข้อมูลบันทึกธุรกรรม

ทำการสำรองข้อมูลบันทึกธุรกรรมเพื่อให้แน่ใจว่ามีการสร้างลำดับบันทึกอย่างถูกต้องและลดเวลาในการเริ่มต้นระบบให้น้อยที่สุด

  1. In SQL Server คลิกขวาที่ฐานข้อมูลใน Management Studio
  2. เลือก งาน -> Back Up.
  3. เปลี่ยนแปลง ประเภทการสำรองข้อมูล ไปยัง บันทึกธุรกรรม.
  4. เลือกปลายทางสำหรับสำรองข้อมูล
  5. คลิก OK เพื่อทำการสำรองข้อมูล
  6. หรืออีกทางเลือกหนึ่งคือใช้ Transact-SQL:
    BACKUP LOG DatabaseName TO DISK = 'C:\Backup\DatabaseName.trn';

สร้างการสำรองข้อมูลบันทึกธุรกรรมของ SQL Server ฐานข้อมูลใน SQL Server สตูดิโอการจัดการ

4.6 การสร้างกลุ่มความพร้อมใช้งาน

สร้างกลุ่มความพร้อมใช้งานโดยใช้วิธีใดวิธีหนึ่งจากหลายวิธีที่มีอยู่ ขึ้นอยู่กับความต้องการและข้อกำหนดด้านระบบอัตโนมัติของคุณ

4.6.1 การใช้ตัวช่วยสร้างกลุ่มความพร้อมใช้งานใหม่

วิซาร์ดการสร้างกลุ่มความพร้อมใช้งานใหม่มีอินเทอร์เฟซแบบกราฟิกสำหรับการสร้างกลุ่มความพร้อมใช้งาน

  1. In SQL Server เชื่อมต่อกับ Management Studio เพื่อใช้เป็นโฮสต์สำหรับสำเนาหลัก
  2. แสดง ความพร้อมใช้งานสูงตลอดเวลา ใน Object Explorer
  3. คลิกขวาที่ กลุ่มความพร้อมใช้งาน และเลือก วิซาร์ดกลุ่มความพร้อมใช้งานใหม่.
    เริ่มตัวช่วยสร้างกลุ่มความพร้อมใช้งานใหม่เพื่อสร้างกลุ่มใหม่ SQL Server กลุ่มพร้อมใช้งานตลอดเวลา
  4. คลิก ถัดไป ในหน้าบทนำ
  5. ป้อนชื่อสำหรับกลุ่มความพร้อมใช้งานแล้วคลิก ถัดไป.
  6. ในหน้าเลือกฐานข้อมูล ให้เลือกฐานข้อมูลที่ต้องการรวมไว้
  7. ตรวจสอบว่าฐานข้อมูลตรงตามข้อกำหนดเบื้องต้นทั้งหมดแล้วคลิก ถัดไป.
  8. ในหน้า ระบุสำเนา ให้คลิก เพิ่มสำเนา.
  9. เชื่อมต่อกับอินสแตนซ์จำลองรองแต่ละตัว
  10. กำหนดค่าคุณสมบัติของสำเนาสำหรับแต่ละอินสแตนซ์ (โหมดความพร้อมใช้งาน โหมดเฟลโอเวอร์)
  11. คลิก ปลายทาง แท็บและตรวจสอบการกำหนดค่าปลายทาง
  12. คลิก การตั้งค่าการสำรองข้อมูล แท็บและกำหนดค่าลำดับความสำคัญของการสำรองข้อมูล
  13. คลิก ผู้ฟัง กดแท็บ และเลือกสร้างตัวรับฟัง (listener) ได้ตามต้องการ
  14. คลิก ถัดไป และเลือกวิธีการซิงโครไนซ์ข้อมูล
  15. ตรวจสอบผลการตรวจสอบและแก้ไขปัญหาที่พบ
  16. คลิก ถัดไป และตรวจสอบสรุปอีกครั้ง
  17. คลิก เสร็จสิ้น เพื่อสร้างกลุ่มความพร้อมใช้งาน
  18. ติดตามความคืบหน้าและตรวจสอบว่าการสร้างสำเร็จหรือไม่

4.6.2 การใช้งาน Transact-SQL

สร้างกลุ่มความพร้อมใช้งานโดยใช้ Transact-SQL เพื่อการปรับใช้ที่เขียนสคริปต์ได้และทำซ้ำได้

  1. สร้างกลุ่มความพร้อมใช้งานบนสำเนาหลัก:
    CREATE AVAILABILITY GROUP AG_Name
    FOR DATABASE DatabaseName
    REPLICA ON
      'PrimaryServer\Instance' WITH
        (ENDPOINT_URL = 'TCP://PrimaryServer:5022',
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
         FAILOVER_MODE = AUTOMATIC,
         SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL)),
      'SecondaryServer\Instance' WITH
        (ENDPOINT_URL = 'TCP://SecondaryServer:5022',
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
         FAILOVER_MODE = AUTOMATIC,
         SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL));
  2. เพิ่มสำเนาสำรองเข้าสู่กลุ่มความพร้อมใช้งาน:
    ALTER AVAILABILITY GROUP AG_Name JOIN;
  3. เข้าร่วมฐานข้อมูลสำรอง:
    ALTER DATABASE DatabaseName SET HADR AVAILABILITY GROUP = AG_Name;

4.6.3 การใช้งาน PowerShell

PowerShell มีความสามารถในการสร้างสคริปต์เพื่อสร้างและจัดการกลุ่มความพร้อมใช้งาน (Availability Group)

  1. สร้างออบเจ็กต์กลุ่มความพร้อมใช้งาน:
    $AG = New-SqlAvailabilityGroup -Name "AG_Name" -Path "SQLSERVER:\SQL\PrimaryServer\Instance"
  2. เพิ่มฐานข้อมูล:
    Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\Instance\AvailabilityGroups\AG_Name" -Database "DatabaseName"
  3. กำหนดค่าสำเนาข้อมูลด้วยคุณสมบัติที่ต้องการโดยใช้คำสั่ง New-SqlAvailabilityReplica
  4. เชื่อมต่อสำเนาสำรองโดยใช้คำสั่ง Join-SqlAvailabilityGroup

4.7 การเพิ่มสำเนาข้อมูลลงในกลุ่มความพร้อมใช้งาน

กำหนดค่าคุณสมบัติเฉพาะสำหรับแต่ละสำเนาที่ควบคุมว่าแต่ละอินสแตนซ์มีส่วนร่วมในกลุ่มความพร้อมใช้งานอย่างไร

4.7.1 การกำหนดค่าคุณสมบัติของสำเนาข้อมูล

กำหนดคุณสมบัติให้กับแต่ละสำเนาเพื่อกำหนดบทบาทและขีดความสามารถภายในกลุ่มความพร้อมใช้งาน

  1. In SQL Server สตูดิโอการจัดการ ขยาย ความพร้อมใช้งานสูงตลอดเวลา -> กลุ่มความพร้อมใช้งาน.
  2. ขยายกลุ่มความพร้อมใช้งาน จากนั้นขยายเพิ่มเติม ความพร้อมใช้งานของสำเนา.
    ความพร้อมใช้งานของสำเนาใน SQL Server เสมอในกลุ่มความพร้อมใช้งาน
  3. คลิกขวาที่สำเนาแล้วเลือก อสังหาริมทรัพย์ .
  4. ตรวจสอบและแก้ไขการตั้งค่าการเชื่อมต่อสำหรับบทบาทหลักและบทบาทรอง
  5. กำหนดค่าหมดเวลาของเซสชันหากจำเป็น
  6. คลิก OK เพื่อบันทึกการเปลี่ยนแปลง

4.7.2 การตั้งค่าโหมดความพร้อมใช้งาน

กำหนดค่าโหมดความพร้อมใช้งานเพื่อควบคุมพฤติกรรมการซิงโครไนซ์ระหว่างสำเนาข้อมูล

  1. คลิกขวาที่กลุ่มความพร้อมใช้งานแล้วเลือก อสังหาริมทรัพย์ .
  2. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ทั่วไป ไปที่หน้า ความพร้อมใช้งานของสำเนา มาตรา.
  3. สำหรับสำเนาแต่ละชุด ให้เลือก การยืนยันแบบซิงโครนัส or การยืนยันแบบอะซิงโครนัส จากเมนูแบบเลื่อนลง
  4. ใช้การยืนยันแบบซิงโครนัสสำหรับสำเนาที่มีความพร้อมใช้งานสูงในระดับท้องถิ่น
  5. ใช้การยืนยันแบบอะซิงโครนัสสำหรับสำเนาสำรองเพื่อการกู้คืนจากภัยพิบัติที่อยู่ห่างไกลกันทางภูมิศาสตร์
  6. คลิก OK เพื่อบันทึกการกำหนดค่า

การตั้งค่าโหมดความพร้อมใช้งานสำหรับสำเนาความพร้อมใช้งาน

4.7.3 การตั้งค่าโหมดการทำงานสำรอง (Failover Modes)

กำหนดค่าโหมดเฟลโอเวอร์เพื่อควบคุมวิธีการเฟลโอเวอร์สำหรับแต่ละสำเนาข้อมูล

  1. คลิกขวาที่กลุ่มความพร้อมใช้งานแล้วเลือก อสังหาริมทรัพย์ .
  2. ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร ทั่วไป ไปที่หน้า ความพร้อมใช้งานของสำเนา มาตรา.
  3. สำหรับสำเนาการยืนยันแบบซิงโครนัส ให้เลือก อัตโนมัติ or ด้วยมือ โหมดการทำงานสำรอง (Failover mode)
  4. การสลับระบบอัตโนมัติเมื่อเกิดข้อผิดพลาด (Automatic failover) ต้องใช้โหมดการยืนยันแบบซิงโครนัส (synchronous commit mode) และช่วยให้สามารถสลับระบบได้โดยอัตโนมัติโดยไม่ต้องมีการดูแล
  5. สำหรับสำเนาการคอมมิตแบบอะซิงโครนัส จะมีเฉพาะการสลับการทำงานด้วยตนเองเท่านั้น
  6. กำหนดค่าสำเนาได้สูงสุดสามชุดสำหรับการสลับการทำงานอัตโนมัติ (หนึ่งชุดหลักและสองชุดสำรอง)
  7. คลิก OK เพื่อใช้การตั้งค่า

ตั้งค่าโหมดเฟลโอเวอร์สำหรับสำเนาความพร้อมใช้งาน

4.7.4 การกำหนดค่าการตั้งค่าการสำรองข้อมูล

ตั้งค่าการกำหนดค่าการสำรองข้อมูลเพื่อควบคุมว่าควรดำเนินการสำรองข้อมูลที่ใด

  1. คลิกขวาที่กลุ่มความพร้อมใช้งานแล้วเลือก อสังหาริมทรัพย์ .
  2. เลือก การตั้งค่าการสำรองข้อมูล ในบานหน้าต่างด้านซ้าย
  3. เลือกตัวเลือกการสำรองข้อมูลอย่างใดอย่างหนึ่ง:
    • ชอบระดับมัธยมศึกษา: สำรองข้อมูลไปยังเซิร์ฟเวอร์สำรองหากมี มิเช่นนั้นให้สำรองข้อมูลไปยังเซิร์ฟเวอร์หลัก
    • รองเท่านั้น: การสำรองข้อมูลจะทำเฉพาะบนสำเนาสำรองเท่านั้น
    • ประถม: สำรองข้อมูลเฉพาะบนสำเนาหลักเท่านั้น
    • แบบจำลองใดๆ: สำรองข้อมูลบนสำเนาที่ใช้งานได้
  4. กำหนดค่าลำดับความสำคัญในการสำรองข้อมูลสำหรับแต่ละสำเนา (0-100)
  5. ค่าลำดับความสำคัญที่สูงกว่าแสดงถึงเป้าหมายการสำรองข้อมูลที่ต้องการ
  6. คลิก OK เพื่อบันทึกการตั้งค่า

กำหนดค่าการตั้งค่าการสำรองข้อมูลสำหรับกลุ่มความพร้อมใช้งาน

4.8 การกำหนดค่า Listener ของกลุ่มความพร้อมใช้งาน

สร้างตัวรับฟังเพื่อให้มีจุดเชื่อมต่อเดียวที่จะทำการเปลี่ยนเส้นทางไปยังสำเนาหลักปัจจุบันโดยอัตโนมัติ

4.8.1 การสร้างผู้ฟัง

เพิ่ม Listener ลงในกลุ่ม Availability สำหรับการจัดการการเชื่อมต่อไคลเอ็นต์

  1. In SQL Server Management Studio ขยายกลุ่มความพร้อมใช้งาน
  2. คลิกขวาที่ ผู้ฟังกลุ่มพร้อมใช้งาน และเลือก เพิ่มผู้ฟัง.
    เพิ่มผู้ฟังลงในกลุ่มความพร้อมใช้งาน
  3. ป้อนชื่อ DNS สำหรับ Listener (ตัวอย่างเช่น AG_Listener)
  4. ป้อนหมายเลขพอร์ต (ค่าเริ่มต้นคือ 1433)
  5. เลือก IP แบบคงที่ สำหรับโหมดเครือข่าย
  6. คลิก เพิ่ม เพื่อเพิ่มที่อยู่ IP ให้กับแต่ละซับเน็ต
  7. ป้อนที่อยู่ IP และเลือกซับเน็ต
  8. คลิก OK เพื่อสร้างผู้ฟัง
  9. ตรวจสอบว่า Listener ปรากฏใน Object Explorer และออนไลน์อยู่หรือไม่

4.8.2 การกำหนดค่า DNS และการตั้งค่า IP

ตรวจสอบการลงทะเบียน DNS และการกำหนดค่าเครือข่ายสำหรับตัวรับฟัง (listener)

  1. เปิดตัวจัดการ DNS บนตัวควบคุมโดเมน
  2. ตรวจสอบว่าชื่อผู้ฟังได้รับการลงทะเบียนกับที่อยู่ IP ทั้งหมดแล้ว
  3. ทดสอบการแก้ไข DNS จากเครื่องไคลเอ็นต์:
    nslookup ListenerName
  4. ตรวจสอบว่ามีการส่งคืนที่อยู่ IP ที่กำหนดค่าไว้ทั้งหมดหรือไม่
  5. ใน Failover Cluster Manager ให้ขยาย บทบาท และเลือกกลุ่มความพร้อมใช้งาน
  6. ตรวจสอบว่าทรัพยากรที่มีที่อยู่ IP นั้นออนไลน์อยู่หรือไม่
  7. ตรวจสอบว่าทรัพยากรชื่อเครือข่ายออนไลน์อยู่หรือไม่
    ตรวจสอบที่อยู่ IP และชื่อเครือข่ายของอุปกรณ์รับฟัง

4.8.3 การทดสอบการเชื่อมต่อของอุปกรณ์รับฟัง

ตรวจสอบว่าแอปพลิเคชันไคลเอ็นต์สามารถเชื่อมต่อผ่านตัวรับฟังได้หรือไม่

  1. จากเครื่องไคลเอ็นต์ ให้เปิด SQL Server สตูดิโอการจัดการ
  2. เชื่อมต่อโดยใช้ชื่อผู้รับฟังแทนชื่อเซิร์ฟเวอร์
  3. เรียกใช้คำสั่งเพื่อตรวจสอบการเชื่อมต่อกับสำเนาหลักปัจจุบัน:
    SELECT @@SERVERNAME;
  4. ทดสอบการกำหนดเส้นทางการอ่านอย่างเดียวโดยเพิ่ม ApplicationIntent=ReadOnly ลงในสตริงการเชื่อมต่อ
  5. ตรวจสอบว่าการเชื่อมต่อเปลี่ยนเส้นทางไปยังสำเนาสำรองที่สามารถอ่านได้หรือไม่
  6. ทดสอบการสลับระบบเมื่อเกิดข้อผิดพลาดโดยการสลับกลุ่มความพร้อมใช้งานด้วยตนเอง และตรวจสอบการเชื่อมต่อใหม่

4.9 วิธีการซิงโครไนซ์ข้อมูล

เลือกวิธีการซิงโครไนซ์ข้อมูลเพื่อเริ่มต้นสำเนาสำรองด้วยสำเนาฐานข้อมูล

4.9.1 การเพาะเมล็ดอัตโนมัติ

การถ่ายโอนข้อมูลแบบอัตโนมัติจะถ่ายโอนข้อมูลฐานข้อมูลผ่านเครือข่ายโดยไม่ต้องทำการสำรองและกู้คืนข้อมูลด้วยตนเอง

  1. ระหว่างการสร้างกลุ่มความพร้อมใช้งาน ให้เลือก การเพาะเมล็ดอัตโนมัติ ในฐานะวิธีการซิงโครไนซ์
    การสร้างข้อมูลเริ่มต้นอัตโนมัติในกลุ่มความพร้อมใช้งาน
  2. ตรวจสอบให้แน่ใจว่ามีการเชื่อมต่อเครือข่ายและแบนด์วิดท์เพียงพอระหว่างสำเนาข้อมูล
  3. สำเนาหลักจะส่งข้อมูลฐานข้อมูลไปยังสำเนาสำรองโดยอัตโนมัติ
  4. ตรวจสอบความคืบหน้าการสร้างข้อมูลเริ่มต้นโดยใช้แดชบอร์ดกลุ่มความพร้อมใช้งานหรือ DMV
  5. การเพาะเมล็ดอัตโนมัติจำเป็นต้องใช้ SQL Server 2016 หรือใหม่กว่า
  6. สำหรับฐานข้อมูลขนาดใหญ่ ควรพิจารณาผลกระทบต่อเครือข่ายและกำหนดเวลาการทำงานในช่วงเวลาที่มีการใช้งานน้อย

4.9.2 การสร้างข้อมูลสำรองด้วยตนเอง (การสำรองข้อมูลและการกู้คืน)

การสร้างสำเนาข้อมูลด้วยตนเองนั้นเกี่ยวข้องกับการสำรองข้อมูลบนเซิร์ฟเวอร์หลักและกู้คืนข้อมูลเหล่านั้นไปยังเซิร์ฟเวอร์สำรอง

  1. บนเครื่องสำเนาหลัก ให้ทำการสำรองข้อมูลทั้งหมด:
    BACKUP DATABASE DatabaseName TO DISK = '\\SharePath\DatabaseName.bak';
  2. ทำการสำรองข้อมูลบันทึกธุรกรรม:
    BACKUP LOG DatabaseName TO DISK = '\\SharePath\DatabaseName.trn';
  3. ในแต่ละสำเนาสำรอง ให้กู้คืนข้อมูลสำรองทั้งหมด:
    RESTORE DATABASE DatabaseName FROM DISK = '\\SharePath\DatabaseName.bak' WITH NORECOVERY;
  4. กู้คืนข้อมูลสำรองบันทึก:
    RESTORE LOG DatabaseName FROM DISK = '\\SharePath\DatabaseName.trn' WITH NORECOVERY;
  5. เพิ่มฐานข้อมูลเข้าสู่กลุ่มความพร้อมใช้งาน:
    ALTER DATABASE DatabaseName SET HADR AVAILABILITY GROUP = AG_Name;
  6. ตรวจสอบว่าการซิงโครไนซ์เริ่มต้นขึ้นและฐานข้อมูลอยู่ในสถานะ SYNCHRONIZED แล้ว

4.9.3 ไฟล์สแนปช็อตของฐานข้อมูล

ใช้ไฟล์สแนปช็อตของฐานข้อมูลเพื่อเริ่มต้นสำเนาสำรองจากไฟล์ฐานข้อมูลที่มีอยู่

  1. ถอดการเชื่อมต่อหรือสำรองข้อมูลฐานข้อมูลบนสำเนาหลัก
  2. คัดลอกไฟล์ฐานข้อมูลไปยังสำเนาสำรองแต่ละชุดโดยใช้เส้นทางไฟล์เดียวกัน
  3. สำหรับสำเนาสำรอง ให้แนบฐานข้อมูลหรือกู้คืนโดยไม่ต้องกู้คืนข้อมูล
  4. ตรวจสอบให้แน่ใจว่าฐานข้อมูลอยู่ในสถานะกำลังกู้คืน (RESTORING)
  5. เพิ่มฐานข้อมูลเข้าสู่กลุ่มความพร้อมใช้งาน
  6. วิธีนี้มีประโยชน์สำหรับฐานข้อมูลขนาดใหญ่มาก ซึ่งการถ่ายโอนข้อมูลผ่านเครือข่ายทำได้ยาก

5 คำถามที่พบบ่อย

5.1 คำถามทั่วไป

ถาม: Always On FCI และ Always On AG แตกต่างกันอย่างไร?

A: Always On Failover Cluster Instances ให้ความพร้อมใช้งานสูงในระดับอินสแตนซ์โดยใช้พื้นที่จัดเก็บข้อมูลร่วมกัน ในขณะที่ Always On Availability Groups ให้ความพร้อมใช้งานสูงในระดับฐานข้อมูลโดยไม่ต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน AG มีเซิร์ฟเวอร์รองที่อ่านได้และกระจายทางภูมิศาสตร์ได้ยืดหยุ่นกว่า

ถาม: ฉันสามารถใช้ Always On Availability Groups ร่วมกับ... SQL Server รุ่นมาตรฐาน?

ตอบ: ใช่ SQL Server เวอร์ชัน Standard Edition ปี 2016 และเวอร์ชันที่ใหม่กว่ารองรับ Basic Availability Groups (AG) โดยมีข้อจำกัด ได้แก่ ฐานข้อมูลหนึ่งฐานต่อ AG, จำนวนสำเนาสูงสุดสองชุด และไม่รองรับการอ่านข้อมูลสำรอง

ถาม: ฉันจำเป็นต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกันสำหรับ Always On Availability Groups หรือไม่?

A: ไม่ กลุ่มความพร้อมใช้งานไม่จำเป็นต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน แต่ละสำเนาจะเก็บสำเนาฐานข้อมูลที่เป็นอิสระไว้ในพื้นที่จัดเก็บข้อมูลภายในเครื่อง และซิงโครไนซ์ผ่านการส่งบันทึกธุรกรรม

ถาม: จำนวนสำเนาสูงสุดในกลุ่มความพร้อมใช้งาน (Availability Group) คือเท่าใด?

A: SQL Server รุ่น Enterprise Edition รองรับสำเนาได้สูงสุดเก้าชุด (หนึ่งชุดหลักและแปดชุดรอง) กลุ่มความพร้อมใช้งานแบบกระจายสามารถรองรับสำเนาได้สูงสุด 18 ชุด โดยกระจายอยู่ในสองกลุ่มความพร้อมใช้งาน

5.2 คำถามเกี่ยวกับการกำหนดค่า

ถาม: ฉันจะเลือกใช้โหมดการคอมมิตแบบซิงโครนัสหรือแบบอะซิงโครนัสได้อย่างไร?

A: ควรใช้การยืนยันข้อมูลแบบซิงโครนัส (synchronous commit) สำหรับข้อกำหนดที่ป้องกันการสูญเสียข้อมูลเป็นศูนย์ภายในศูนย์ข้อมูลเดียวกันหรือเครือข่ายที่มีความหน่วงต่ำ ควรใช้การยืนยันข้อมูลแบบอะซิงโครนัส (asynchronous commit) สำหรับสำเนาข้อมูลสำรองเพื่อการกู้คืนจากภัยพิบัติที่อยู่ห่างไกล ซึ่งการยืนยันข้อมูลแบบซิงโครนัสจะส่งผลกระทบต่อประสิทธิภาพการทำงาน

ถาม: ฉันสามารถใช้สำเนาแบบซิงโครนัสและแบบอะซิงโครนัสร่วมกันในกลุ่มความพร้อมใช้งานเดียวกันได้หรือไม่?

A: ใช่แล้ว กลุ่มความพร้อมใช้งาน (Availability Group) รองรับการกำหนดค่าแบบผสมผสานทั้งสำเนาแบบซิงโครนัสและแบบอะซิงโครนัส ซึ่งช่วยให้มีความพร้อมใช้งานสูงในพื้นที่ด้วยสำเนาแบบซิงโครนัส และการกู้คืนจากภัยพิบัติในระยะไกลด้วยสำเนาแบบอะซิงโครนัส

ถาม: เกิดอะไรขึ้นกับการเชื่อมต่อของฉันระหว่างการสลับระบบเมื่อเกิดข้อผิดพลาด?

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

ถาม: ฉันจำเป็นต้องซิงโครไนซ์การเข้าสู่ระบบและงานต่างๆ ระหว่างสำเนาข้อมูลหรือไม่?

ตอบ: ใน SQL Server สำหรับรุ่นปี 2019 และก่อนหน้านั้น ใช่แล้ว – การเข้าสู่ระบบ งาน SQL Agent และเซิร์ฟเวอร์ที่เชื่อมโยงจะต้องทำการซิงโครไนซ์ด้วยตนเอง SQL Server ในปี 2022 ได้มีการนำเสนอกลุ่มความพร้อมใช้งานแบบมีขอบเขต ซึ่งจะรวมวัตถุเหล่านี้ไว้โดยอัตโนมัติ

5.3 คำถามด้านการจัดการ

ถาม: ฉันสามารถทำการสำรองข้อมูลบนสำเนาสำรองได้หรือไม่?

A: ใช่แล้ว สำเนาสำรองรองรับการสำรองข้อมูลแบบเต็ม แบบส่วนต่าง และแบบบันทึกธุรกรรม กำหนดค่าการตั้งค่าการสำรองข้อมูลเพื่อถ่ายโอนการสำรองข้อมูลจากสำเนาหลักและลดการใช้ทรัพยากรของสำเนาหลักลง

ถาม: ฉันจะแก้ไขปัญหานี้ได้อย่างไร SQL Server โดยมีเวลาหยุดทำงานน้อยที่สุด?

A: ใช้การอัปเกรดแบบค่อยเป็นค่อยไป โดยเริ่มจากการแพตช์สำเนาสำรองก่อน จากนั้นทำการสลับระบบไปยังสำเนาสำรองที่แพตช์แล้วด้วยตนเอง และสุดท้ายจึงแพตช์สำเนาหลักเดิม วิธีนี้จะช่วยลดเวลาหยุดทำงานให้น้อยที่สุดในช่วงเวลาการสลับระบบ

ถาม: ฉันสามารถเพิ่มฐานข้อมูลลงในกลุ่มความพร้อมใช้งานที่มีอยู่แล้วได้หรือไม่?

A: ใช่ สามารถเพิ่มฐานข้อมูลลงในกลุ่มความพร้อมใช้งานที่กำลังทำงานอยู่ได้ ฐานข้อมูลต้องอยู่ในโหมดการกู้คืนแบบเต็ม (Full Recovery Model) พร้อมการสำรองข้อมูลแบบเต็ม และต้องมีการสร้างสำเนาสำรอง (Secondary Replica) โดยใช้การสร้างสำเนาอัตโนมัติ (Automatic Seeding) หรือการสำรองและกู้คืนด้วยตนเอง (Manual Backup and Restore)

ถาม: การหว่านเมล็ดอัตโนมัติคืออะไร และฉันควรใช้หรือไม่?

A: การสร้างสำเนาสำรองอัตโนมัติจะถ่ายโอนข้อมูลฐานข้อมูลผ่านเครือข่ายเพื่อสร้างสำเนาสำรองโดยไม่ต้องสำรองข้อมูลด้วยตนเอง เหมาะสำหรับฐานข้อมูลขนาดเล็กหรือเมื่อแบนด์วิดท์เครือข่ายเพียงพอ สำหรับฐานข้อมูลขนาดใหญ่มาก การสร้างสำเนาสำรองด้วยตนเองอาจเร็วกว่า

ถาม: ฉันควรเรียกใช้คำสั่ง DBCC CHECKDB ในกลุ่มความพร้อมใช้งาน (Availability Group) ที่ใด?

A: คุณควรเรียกใช้คำสั่ง DBCC CHECKDB บนสำเนาสำรองเพื่อลดภาระงานบนสำเนาหลัก การตรวจสอบความสอดคล้องของฐานข้อมูลสามารถดำเนินการกับฐานข้อมูลสำรองได้โดยไม่ส่งผลกระทบต่อประสิทธิภาพของสำเนาหลัก

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ DBCC CHECKDB โปรดดูที่หน้าของเรา คู่มือฉบับสมบูรณ์.

5.4 คำถามการแก้ไขปัญหา

ถาม: ทำไมฐานข้อมูลของฉันจึงอยู่ในสถานะ "ไม่ซิงโครไนซ์"?

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

ถาม: ฉันจะบังคับให้ระบบสำรองทำงานเมื่อระบบหลักไม่พร้อมใช้งานได้อย่างไร?

A: เชื่อมต่อกับสำเนาสำรองและเรียกใช้คำสั่ง ALTER AVAILABILITY GROUP AG_Name FORCE_FAILOVER_ALLOW_DATA_LOSS คำสั่งนี้จะรับทราบถึงความเป็นไปได้ที่จะเกิดการสูญเสียข้อมูลและเลื่อนสถานะสำเนาสำรองให้เป็นสำเนาหลักทันที

ถาม: ทำไมลูกค้าถึงเชื่อมต่อกับอุปกรณ์รับฟังของฉันไม่ได้?

A: ตรวจสอบว่า Listener ออนไลน์อยู่ใน Failover Cluster Manager การลงทะเบียน DNS สำเร็จ IP ของ Listener ทั้งหมดสามารถเข้าถึงได้จากไคลเอ็นต์ และกฎไฟร์วอลล์อนุญาตให้มีการรับส่งข้อมูลไปยังพอร์ตของ Listener

ถาม: คิวทำซ้ำขนาดใหญ่หมายความว่าอย่างไร?

A: คิว redo ขนาดใหญ่แสดงว่าสำเนาสำรองไม่สามารถนำข้อมูล log ไปใช้ได้เร็วเท่ากับที่ข้อมูลมาถึง ซึ่งอาจบ่งชี้ถึงปัญหาคอขวดด้านการอ่านเขียนดิสก์ ข้อจำกัดของ CPU หรือการบล็อกจากการสืบค้นแบบอ่านอย่างเดียวบนสำเนาสำรอง

ถาม: หากเกิดภัยพิบัติที่ส่งผลกระทบต่อสำเนาข้อมูลทั้งหมด และข้อมูลสำรองของฉันก็เสียหายด้วย ฉันควรทำอย่างไร?

A: สถานการณ์เลวร้ายที่สุดนี้ แม้ว่าจะเกิดขึ้นได้ยากมาก แต่ก็อาจเกิดขึ้นได้เนื่องจากการโจมตีด้วยแรนซัมแวร์ ความล้มเหลวในการจัดเก็บข้อมูลในวงกว้าง หรือภัยพิบัติที่ต่อเนื่องกัน การป้องกันหลักของคุณคือการป้องกัน: รักษาสำเนาข้อมูลที่กระจายอยู่ตามภูมิศาสตร์ต่างๆ จัดเก็บข้อมูลสำรองในสถานที่ที่แยกจากกัน และ
ทดสอบขั้นตอนการกู้คืนระบบหลังภัยพิบัติของคุณอย่างสม่ำเสมอ หากตัวเลือกการกู้คืนมาตรฐานทั้งหมดล้มเหลว ให้ใช้ตัวเลือกการกู้คืนเฉพาะทาง เครื่องมือกู้คืนข้อมูล SQL สามารถลองดึงข้อมูลจากไฟล์ MDF ที่เสียหายได้ในกรณีที่เกิดเหตุฉุกเฉินและเป็นทางเลือกสุดท้าย

5.5 คำถามเกี่ยวกับการออกใบอนุญาตและค่าใช้จ่าย

ถาม: Always On Availability Groups มีการอนุญาตใช้งานอย่างไร?

A: SQL Server การอนุญาตใช้งานขึ้นอยู่กับรุ่นและรูปแบบการใช้งาน กลุ่มความพร้อมใช้งานของรุ่น Enterprise Edition ต้องใช้ใบอนุญาต Enterprise สำหรับสำเนาทั้งหมด สำเนาสำรองแบบพาสซีฟอาจมีสิทธิ์ได้รับการอนุญาตใช้งานฟรีภายใต้เงื่อนไขบางประการ

ถาม: ฉันสามารถใช้ SQL Server รุ่นสำหรับนักพัฒนาสำหรับกลุ่มความพร้อมใช้งาน?

A: ใช่แล้ว Developer Edition มีฟีเจอร์ทั้งหมดของ Enterprise Edition รวมถึงการรองรับ Availability Groups อย่างเต็มรูปแบบ อย่างไรก็ตาม ใบอนุญาตนี้มีไว้สำหรับการพัฒนาและทดสอบเท่านั้น ไม่ใช่สำหรับการใช้งานจริงในระบบการผลิต

ถาม: การอ่านไฟล์ข้อมูลรองจำเป็นต้องมีใบอนุญาตเพิ่มเติมหรือไม่?

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

ถาม: มีวิธีใดบ้างที่ให้ระบบมีความพร้อมใช้งานสูงโดยไม่เสียค่าใช้จ่าย? SQL Server?

A: SQL Server Express Edition ไม่รองรับกลุ่มความพร้อมใช้งาน (Availability Groups) SQL Server รุ่นมาตรฐานรองรับกลุ่มความพร้อมใช้งานพื้นฐาน (Basic Availability Groups) โดยเริ่มต้นที่ SQL Server ปี 2016 ให้บริการความพร้อมใช้งานสูงขั้นพื้นฐานในราคาใบอนุญาตแบบมาตรฐาน

ถาม: Distributed Availability Groups คืออะไร?

A: กลุ่มความพร้อมใช้งานแบบกระจาย (Distributed Availability Groups หรือ Distributed Availability Groups หรือ DOS) เป็นกลุ่มความพร้อมใช้งานชนิดพิเศษที่ครอบคลุมกลุ่มความพร้อมใช้งานสองกลุ่มที่แยกจากกัน ทำให้สามารถใช้งานในสถานการณ์ต่างๆ ที่เหนือกว่าความสามารถของกลุ่มความพร้อมใช้งานแบบดั้งเดิม (เริ่มใช้ใน...) SQL Server ในปี 2016 กลุ่มความพร้อมใช้งานแบบกระจายได้กล่าวถึงข้อกำหนดด้านการขยายขนาดและการกระจายทางภูมิศาสตร์

6 ข้อสรุป

6.1 สรุปประเด็นสำคัญ

SQL Server Always On Availability Groups คือโซลูชันความพร้อมใช้งานสูงและการกู้คืนจากภัยพิบัติระดับพรีเมียมของ Microsoft สำหรับฐานข้อมูลที่มีความสำคัญต่อภารกิจ โดยให้การสลับการทำงานระดับฐานข้อมูลโดยไม่ต้องใช้พื้นที่จัดเก็บข้อมูลร่วมกัน มีสำเนาสำรองที่อ่านได้สำหรับการถ่ายโอนภาระงาน และการกระจายทางภูมิศาสตร์ที่ยืดหยุ่นเพื่อการปกป้องข้อมูลอย่างครอบคลุม สำหรับองค์กรที่ยังคงใช้โซลูชันเช่น การขนส่งไม้ซุง or การทำซ้ำกลุ่มความพร้อมใช้งาน (Availability Groups) นำเสนอเส้นทางการอัปเกรดที่แข็งแกร่งกว่าและใช้งานง่ายกว่า

6.2 เมื่อใดควรใช้ Always On Availability Groups

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

6.3 เริ่มต้นการใช้งานของคุณ

เริ่มต้นวางแผนกลุ่มความพร้อมใช้งานโดยประเมินความต้องการทางธุรกิจ รวมถึง RTO, RPO และข้อจำกัดด้านงบประมาณ บันทึกโครงสร้างพื้นฐานฐานข้อมูลปัจจุบัน การพึ่งพาแอปพลิเคชัน และช่องว่างความพร้อมใช้งานสูง ออกแบบสถาปัตยกรรมกลุ่มความพร้อมใช้งานที่ตอบสนองความต้องการในขณะที่ยังคงอยู่ภายใต้ข้อจำกัดด้านทรัพยากร

อ้างอิง


เกี่ยวกับผู้เขียน

หยวน เซิง เป็นผู้ดูแลฐานข้อมูลอาวุโส (DBA) ที่มีประสบการณ์มากกว่า 10 ปีใน SQL Server สภาพแวดล้อมและการจัดการฐานข้อมูลองค์กร เขาประสบความสำเร็จในการแก้ไขปัญหาการกู้คืนฐานข้อมูลหลายร้อยกรณีในองค์กรด้านบริการทางการเงิน การดูแลสุขภาพ และการผลิต

หยวนมีความเชี่ยวชาญด้าน SQL Server การกู้คืนฐานข้อมูล โซลูชันความพร้อมใช้งานสูง และการเพิ่มประสิทธิภาพการทำงาน ประสบการณ์ภาคปฏิบัติอันกว้างขวางของเขาครอบคลุมการจัดการฐานข้อมูลหลายเทราไบต์ การนำ Always On Availability Groups มาใช้ และการพัฒนากลยุทธ์การสำรองและกู้คืนข้อมูลอัตโนมัติสำหรับระบบธุรกิจที่สำคัญต่อภารกิจ

ด้วยความเชี่ยวชาญทางเทคนิคและแนวทางปฏิบัติ Yuan มุ่งเน้นที่การสร้างคู่มือที่ครอบคลุมซึ่งจะช่วยให้ผู้ดูแลระบบฐานข้อมูลและผู้เชี่ยวชาญด้านไอทีแก้ไขปัญหาที่ซับซ้อน SQL Server ท้าทายอย่างมีประสิทธิภาพ เขาคอยติดตามข่าวสารล่าสุดอยู่เสมอ SQL Server การเปิดตัวและเทคโนโลยีฐานข้อมูลที่พัฒนาอย่างต่อเนื่องของ Microsoft ทดสอบสถานการณ์การกู้คืนเป็นประจำเพื่อให้แน่ใจว่าคำแนะนำของเขาสะท้อนถึงแนวทางปฏิบัติที่ดีที่สุดในโลกแห่งความเป็นจริง

มีคำถามเกี่ยวกับ SQL Server การกู้คืนหรือต้องการคำแนะนำในการแก้ไขปัญหาฐานข้อมูลเพิ่มเติมหรือไม่? หยวนยินดีต้อนรับ ข้อเสนอแนะและข้อเสนอแนะ เพื่อปรับปรุงทรัพยากรทางเทคนิคเหล่านี้

แบ่งปันเลย: