อาการ
สมมติว่าคุณใช้กลุ่มความพร้อมใช้งาน AlwaysOn ใน Microsoft SQL Server ๒๐๑๒หรือฐานข้อมูล SQL Server ๒๐๑๔และมีธุรกรรมที่เปิดใช้งานขนาดใหญ่ที่มีอยู่แล้วและจำเป็นต้องใช้เนื้อที่ในการบันทึกเพิ่มเติม เมื่อไฟล์บันทึกไม่สามารถขยายได้เนื่องจากสาเหตุใดสาเหตุหนึ่งต่อไปนี้ทรานแซคชันล้มเหลว
-
ไม่มีช่องว่างของไฟล์เพิ่มเติม
-
ไฟล์บันทึกถูกกำหนดค่าไม่ให้ขยาย
-
ไฟล์บันทึกได้ถึงขนาดสูงสุดที่กำหนดไว้แล้ว
นอกจากนี้คุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข้อผิดพลาด: ๙๐๐๒ความรุนแรง:17 สถานะ: 9 การบันทึกธุรกรรมสำหรับฐานข้อมูล ' <ชื่อฐานข้อมูล> ' จะเต็มเนื่องจาก ' LOG_BACKUP '
หลังจากที่คุณเรียกใช้การสำรองข้อมูลบันทึกคุณจะได้รับข้อความแสดงข้อผิดพลาด๙๐๐๒อื่น:
ข้อผิดพลาด: ๙๐๐๒ความรุนแรง:17 สถานะ: 9 การบันทึกธุรกรรมสำหรับฐานข้อมูล ' <ชื่อฐานข้อมูล> ' จะเต็มเนื่องจาก ' ACTIVE_TRANSACTION '
หลังจากการสำรองข้อมูลบันทึกอื่นแล้วคุณจะได้รับข้อความแสดงข้อผิดพลาด๙๐๐๒อื่นตามด้วยข้อความแสดงข้อผิดพลาด๕๙๐๑:
ข้อผิดพลาด: ๙๐๐๒ความรุนแรง:17 สถานะ: 9 การบันทึกธุรกรรมสำหรับฐานข้อมูล ' <ชื่อฐานข้อมูล> ' จะเต็มเนื่องจาก ' AVAILABILITY_REPLICA '
ไม่สามารถเขียนระเบียนจุดตรวจสอบในฐานข้อมูล <ชื่อฐานข้อมูล> ได้เนื่องจากแฟ้มบันทึกอยู่นอกพื้นที่ ติดต่อผู้ดูแลฐานข้อมูลเพื่อตัดการบันทึกหรือจัดสรรเนื้อที่ว่างเพิ่มเติมให้กับไฟล์บันทึกของฐานข้อมูล ข้อผิดพลาด: ๕๙๐๑ความรุนแรง:16 สถานะ: 1 หน่วยการกู้คืนอย่างน้อยหนึ่งหน่วยที่เป็นของฐานข้อมูล ' <ชื่อฐานข้อมูล> ' ล้มเหลวในการสร้างจุดตรวจสอบ โดยทั่วไปจะเกิดจากการขาดทรัพยากรของระบบเช่นดิสก์หรือหน่วยความจำหรือในบางกรณีเนื่องจากความเสียหายของฐานข้อมูล ตรวจสอบรายการก่อนหน้าในบันทึกข้อผิดพลาดสำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับความล้มเหลวนี้
เมื่อจุดตรวจสอบที่ตามมาหรือการสำรองข้อมูลบันทึกจะถูกดำเนินการในระหว่างการย้อนกลับของทรานแซคชันคุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
Msg ๓๐๕๒ระดับ16สถานะ1บรรทัด4BACKUP ไม่สามารถบันทึกการอัปเดตสำหรับฐานข้อมูล ' <ชื่อฐานข้อมูล> ' การสำรองข้อมูลบันทึกที่ตามมาจะจำเป็นต้องเลื่อนจุดการสำรองข้อมูลจาก ' <LSN id 1> ' ไปยัง ' <id lsn 2> ' หลังจากที่มีการบันทึกช่องว่างที่พร้อมใช้งานสำหรับการเข้าสู่ระบบ
เมื่อคุณได้รับข้อความเหล่านี้คุณจะไม่สามารถส่งธุรกรรมใหม่ไปยังฐานข้อมูลได้อีกต่อไปและคุณไม่สามารถขยายไฟล์บันทึกหรือเพิ่มไฟล์บันทึกอื่นได้
การแก้ไข
ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตที่สะสมของ SQL Server ต่อไปนี้:
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ เราขอแนะนำให้คุณดาวน์โหลดและติดตั้งการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
วิธีแก้ไขปัญหาชั่วคราว
คุณสามารถใช้วิธีแก้ไขปัญหาชั่วคราวต่อไปนี้เพื่อตัดการบันทึกและดำเนินการกิจกรรมต่อไป
-
ตรวจสอบแบบจำลองรองแต่ละแบบเพื่อตรวจสอบ last_hardened_lsn แบบจำลองรอง (ดู sys.dm_hadr_database_replica_states) ตรงกับ last_hardened_lsnแบบจำลองหลัก คุณสามารถทำได้โดยการเรียกใช้คิวรีต่อไปนี้ที่เชื่อมต่อกับอินสแตนซ์ของแบบจำลองหลัก
SELECT ags.name as AGGroupName, ar.replica_server_name as InstanceName, hars.role_desc, db_name(drs.database_id)as DBName, drs.last_hardened_lsn, drs.log_send_queue_size, drs.synchronization_state_desc as SyncState, ar.availability_mode_desc as SyncMode, CASE drs.is_local WHEN 1 THEN drs.database_id ELSE NULL END as database_id FROM sys.dm_hadr_database_replica_states drs LEFT JOIN sys.availability_replicas ar ON drs.replica_id = ar.replica_id LEFT JOIN sys.availability_groups ags ON ar.group_id = ags.group_id LEFT JOIN sys.dm_hadr_availability_replica_states hars ON ar.group_id = hars.group_id and ar.replica_id = hars.replica_id WHERE db_name(drs.database_id) = '<database name>'
-
บนแบบจำลองหลัก
-
เอาฐานข้อมูลออกจากกลุ่มความพร้อมใช้งาน
-
เพิ่มฐานข้อมูลไปยังกลุ่มความพร้อมใช้งานอีกครั้ง
-
-
บนแต่ละแบบจำลองทุติยภูมิ
-
เพิ่มฐานข้อมูลไปยังกลุ่มความพร้อมใช้งานอีกครั้ง
-
โดยการเอาฐานข้อมูลออกจากกลุ่มความพร้อมใช้งานจะเป็นการตัดทอนไฟล์บันทึกและเพิ่มเนื้อที่ว่างในบันทึกได้ทันที ถ้า last_hardened_lsn ของแบบจำลองรองแต่ละแบบจะเหมือนกับแบบจำลองหลักและไม่มีการสำรองข้อมูลบันทึกจะถูกนำไปใช้ในระหว่างช่วงเวลาของการเอาฐานข้อมูลออกจากกลุ่มความพร้อมใช้งานและการเพิ่มฐานข้อมูลใหม่บนรองแต่ละแบบจำลองทุติยภูมิจะถูกเพิ่มเข้าไปใหม่โดยไม่มีข้อผิดพลาดหรือจำเป็นต้องคืนค่าสำเนาสำรองของบันทึก ถ้าแบบจำลองทุติยภูมิไม่ได้อยู่ในปัจจุบันกับแบบจำลองหลักและคุณต้องเอาฐานข้อมูลออกจากกลุ่มความพร้อมใช้งานก่อนที่รองสามารถจับได้ซึ่งอาจต้องมีการคืนค่าการสำรองข้อมูลบันทึกเพื่อตรวจจับก่อนที่จะเพิ่มลงในกลุ่มความพร้อมใช้งานหรือวางฐานข้อมูลบนแบบจำลองทุติยภูมิและการสำรองฐานข้อมูลของฐานข้อมูลทั้งหมด
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"