ความพร้อมใช้งานสูง (HA) เป็นโซลูชัน / กระบวนการ / เทคโนโลยีเพื่อให้แน่ใจว่าแอปพลิเคชัน / ฐานข้อมูลสามารถเข้าถึงได้ทุกวันตลอด 24 ชั่วโมงในทุกสภาวะ ไม่ว่าจะตั้งใจหรือไม่คาดคิด
โดยทั่วไป มี 5 ตัวเลือกในการตั้งค่าความพร้อมใช้งานของฐานข้อมูลใน MS SQL Server
- การจำลองแบบ
- บันทึกการจัดส่ง
- กระจกเงา
- การจัดกลุ่ม
- กลุ่มความพร้อมใช้งานเสมอ
การจำลองแบบ
ข้อมูลต้นฉบับจะถูกคัดลอกไปยังปลายทางผ่านงานการจำลองแบบ (ตัวแทน / งาน) โดยใช้เทคโนโลยีที่ระดับวัตถุ คำศัพท์บางคำจำเป็นต้องรู้:
ผู้เผยแพร่ (Publisher) เป็นเซิร์ฟเวอร์ต้นทาง
- Distributor (Distributor) เป็นทางเลือก โดยจะจัดเก็บข้อมูลที่คัดลอกไปยังสมาชิก (Subscriber)
- สมาชิกคือเซิร์ฟเวอร์ปลายทาง
บันทึกการจัดส่ง
ข้อมูลต้นทางจะถูกคัดลอกไปยังปลายทางผ่านงานสำรองข้อมูลบันทึกธุรกรรม โดยใช้เทคโนโลยีระดับฐานข้อมูล คำบางคำ:
- เซิร์ฟเวอร์หลัก (เซิร์ฟเวอร์หลัก) เป็นเซิร์ฟเวอร์ต้นทาง
- เซิร์ฟเวอร์รอง (Secondary Server) คือเซิร์ฟเวอร์ปลายทาง
- เซิร์ฟเวอร์การมอนิเตอร์เป็นทางเลือก ตรวจสอบโดยสถานะ Log Shipping
กระจกเงา
ข้อมูลหลักจะถูกคัดลอกไปยังข้อมูลรองผ่านธุรกรรมเครือข่ายด้วยความช่วยเหลือของการฉายภาพและการเชื่อมต่อหมายเลขพอร์ต โดยใช้เทคโนโลยีระดับฐานข้อมูล คำบางคำ:
- เซิร์ฟเวอร์เดิม (เซิร์ฟเวอร์หลัก) เป็นเซิร์ฟเวอร์ต้นทาง
- เซิร์ฟเวอร์มิเรอร์คือเซิร์ฟเวอร์ปลายทาง
- Witness Server เป็นทางเลือก ใช้สำหรับโซลูชันความทนทานต่อข้อผิดพลาดอัตโนมัติ
การจัดกลุ่ม
ข้อมูลถูกเก็บไว้ในตำแหน่งทั่วไป ใช้โดยเซิร์ฟเวอร์หลักและรอง โดยใช้เทคโนโลยีที่ระดับอินสแตนซ์ คุณต้องตั้งค่า Windows Clustering บนที่จัดเก็บข้อมูลที่ใช้ร่วมกันนี้ คำบางคำ:
- Active Node คือที่ที่ SQL Services ทำงาน
- Passive Node (Passive Node) คือที่ที่ SQL Services ไม่ทำงาน
AlwaysON Availability Group
ข้อมูลหลักจะถูกถ่ายโอนไปยังข้อมูลรองผ่านธุรกรรม โดยใช้เทคโนโลยีที่ระดับกลุ่มฐานข้อมูล การตั้งค่า Windows Clustering ไม่ต้องการที่เก็บข้อมูลทั่วไป คำบางคำ:
- ตัวจำลองหลักคือเซิร์ฟเวอร์ต้นทาง
- Secondary Replica คือเซิร์ฟเวอร์ปลายทาง
ขั้นตอนในการกำหนดค่าความพร้อมใช้งานสูงสำหรับการมิเรอร์และบันทึกการจัดส่ง
ด้านล่างนี้คือขั้นตอนในการกำหนดค่า HA (การทำมิเรอร์และการบันทึกการจัดส่ง) ยกเว้นการทำคลัสเตอร์, AlwaysON Availability Groups และการจำลองแบบ
ขั้นตอนที่ 1 - รับสำเนาฉบับเต็มและสำเนา T-log ของฐานข้อมูลต้นฉบับ
ตัวอย่างเช่น:
ในการกำหนดค่ามิเรอร์ / บันทึกการจัดส่งสำหรับ TestDB ฐานข้อมูลใน TESTINSTANCE เป็นเซิร์ฟเวอร์ SQL Server หลักและ DEVINSTANCE เป็นเซิร์ฟเวอร์รอง ใช้แบบสอบถามต่อไปนี้เพื่อรับข้อมูลสำรองทั้งหมดและ T-log บนเซิร์ฟเวอร์ต้นทาง (TESTINTANCE)
เชื่อมต่อกับ SQL Server TESTINSTANCE แล้วเปิดแบบสอบถามใหม่ เขียนโค้ดด้านล่าง แล้วดำเนินการตามภาพ
Backup database TestDB to disk = 'D:testdb_full.bak'
GO
Backup log TestDB to disk = 'D:testdb_log.trn'
ค้นหาข้อมูลสำรอง
ขั้นตอนที่ 2 - คัดลอกไฟล์สำรองไปยังเซิร์ฟเวอร์ปลายทาง
ในกรณีนี้ เรามีเซิร์ฟเวอร์จริงเพียงเครื่องเดียวและอินสแตนซ์เซิร์ฟเวอร์ SQL สองเวอร์ชัน เราจึงไม่ต้องคัดลอก แต่ถ้าสำเนาของอินสแตนซ์เซิร์ฟเวอร์ SQL สองชุดอยู่ในเซิร์ฟเวอร์จริงสองเครื่อง ให้คัดลอกไฟล์สองไฟล์ต่อไปนี้ไปยังตำแหน่งบนเซิร์ฟเวอร์รอง โดยที่ DEVINSTANCE คือ ติดตั้งแล้ว
คัดลอกไฟล์สำรองไปยังเซิร์ฟเวอร์ปลายทาง
ขั้นตอนที่ 3 - กู้คืนฐานข้อมูลด้วยไฟล์สำรองบนเซิร์ฟเวอร์ปลายทางโดยเลือก norecovery
ตัวอย่าง
เชื่อมต่อกับ SQL Server DEVINSTANCE และเปิดแบบสอบถามใหม่ เขียนโค้ดต่อไปนี้เพื่อกู้คืนฐานข้อมูลด้วยชื่อ TestDB เหมือนกับชื่อฐานข้อมูลเดิม คุณสามารถใช้ชื่ออื่นสำหรับการกำหนดค่า Log Shipping ใช้ norecovery ตัวเลือกในการกู้คืน
Restore database TestDB from disk = 'D:TestDB_full.bak'
with move 'TestDB' to 'D:DATATestDB_DR.mdf',
move 'TestDB_log' to 'D:DATATestDB_log_DR.ldf',
norecovery
GO
Restore database TestDB from disk = 'D:TestDB_log.trn' with norecovery
กู้คืนฐานข้อมูลด้วยการบันทึกไฟล์
รีเฟรชโฟลเดอร์ฐานข้อมูลใน DEVINSTANCE เซิร์ฟเวอร์เพื่อดูว่าฐานข้อมูลได้รับการคืนค่า TestDB โดยมีสถานะการฟื้นตัวดังแสดงด้านล่าง
สถานะการกู้คืนฐานข้อมูล
ขั้นตอนที่ 4 - กำหนดค่า HA (บันทึกการจัดส่ง / มิเรอร์) ดังที่แสดงด้านล่าง
ตัวอย่างเช่น:
คลิกขวาที่ SQL Server TestDB ฐานข้อมูล TESTINTANCE (เซิร์ฟเวอร์รูท) แล้วคลิก คุณสมบัติ หน้าจอด้านล่างจะปรากฏขึ้น
การกำหนดค่าการจัดส่งบันทึก / การมิเรอร์
ขั้นตอนที่ 5 - เลือก มิเรอร์ หรือ บันทึกการทำธุรกรรมการจัดส่ง ตามความต้องการของคุณและทำตามขั้นตอนที่ระบบให้มาเพื่อทำการกำหนดค่าให้เสร็จสิ้น