ฐานข้อมูล SQL Server AlwaysOn ติดอยู่ในโหมดไม่ซิงโครไนซ์ / กำลังกู้คืนหลังจากอัปเกรด ข้อผิดพลาด: ไม่สามารถเปิดฐานข้อมูล '…' รุ่น 782


10

ขณะทดสอบการอัปเกรดจาก SQL Server 2014 SP1 (12.0.4422.0) เป็น SQL Server 2016 CTP 3.2 (13.0.900.73) ฉันทำตามกระบวนการอัปเดตที่แนะนำและพบปัญหาที่ฐานข้อมูลจะไม่เริ่มทำงานบนหลักเก่าหลังจากล้มเหลว ไปยังการปรับปรุงรอง การตั้งค่าของเราเป็นแบบจำลองหลักและแบบจำลองรองเดียวและขั้นตอนที่ฉันทำคือ:

  1. ลบ failover อัตโนมัติในแบบจำลองรองกระทำการซิงโครนัส
  2. อัพเกรดอินสแตนซ์ของเซิร์ฟเวอร์รองเป็นเวอร์ชันใหม่
  3. ล้มเหลวด้วยตนเองไปยังแบบจำลองรอง
  4. ตรวจสอบว่าฐานข้อมูลออนไลน์แบบจำลองหลักใหม่
  5. อัปเกรดเรพพลิกาหลักก่อนหน้าเป็นเวอร์ชันใหม่

การอัพเกรดของรองและ failover เพื่อให้มันทำงานหลักตรงตามที่คาดไว้ แต่หลังจากการอัพเกรดแบบจำลองก่อนหน้านี้หลักที่ผมสังเกตเห็นว่าฐานข้อมูลที่มันถูกระบุไว้ใน SSMS เป็นไม่ตรงกัน / ในการกู้คืน การพยายามเข้าถึงพวกมันจะสร้างข้อความแสดงข้อผิดพลาด:

ฐานข้อมูล ... ไม่สามารถเข้าถึงได้ (ObjectExplorer)

กำลังตรวจสอบถึงบันทึกของเซิร์ฟเวอร์ SQL ที่ฉันเห็น

ไม่สามารถเปิดฐานข้อมูล '... ' เวอร์ชัน 782 อัปเกรดฐานข้อมูลเป็นเวอร์ชันล่าสุด

การสอบถามตาราง master..sysdatabases แสดงให้เห็นว่ามันเป็นรุ่นที่เก่ากว่าและไม่ได้รับการอัพเดตในระหว่างการอัพเกรด:

รุ่น SSMS ฐานข้อมูล

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

ฉันพยายามใช้ TSQL เพื่อแยกฐานข้อมูลหรือตั้งค่าแบบออฟไลน์เป็น "kick" เป็นการปรับปรุง แต่เนื่องจากเป็นส่วนหนึ่งของ SQL AG คำสั่งเหล่านั้นจึงไม่ทำงาน

ฉันจะอัพเกรดฐานข้อมูลเป็นเวอร์ชันล่าสุดได้อย่างไรเมื่อเป็นส่วนหนึ่งของ SQL AG

คำตอบ:


10

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

นี่คือภาพหน้าจอของฐานข้อมูล AG หลังจากฉันแก้ไข "Patch" แต่ก่อนที่จะแก้ไขฐานข้อมูลทดสอบ:

ดำเนินการย้ายข้อมูลต่อบน SQL AG

หมายเหตุคุณยังสามารถใช้ TSQL ในส่วนที่สองเพื่อทำการจำลองแบบต่อบนฐานข้อมูลหลาย ๆ ตัวในเวลาเดียวกัน:

ALTER DATABASE [Patch] SET HADR RESUME;
ALTER DATABASE [test] SET HADR RESUME;
GO

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