บันทึกธุรกรรมสำหรับฐานข้อมูล 'database_name' เต็มเนื่องจาก 'XTP_CHECKPOINT'


26

XTP_CHECKPOINTฉันมีคำถามเกี่ยวกับ

ฉันใช้ SQL Server 2014 ฉันมีฐานข้อมูลที่อยู่ในโหมดรูปแบบการกู้คืนที่เรียบง่าย มันยังถูกทำซ้ำ

ไม่มีธุรกรรมที่เปิดอยู่ ฉันวิ่งDBCC OPENTRANแล้วมันกลับมา:

"ไม่มีธุรกรรมเปิดค้างอยู่"

แต่ฉันได้รับข้อความนี้ทุกครั้งที่ฉันพยายามสร้างหรือวางตารางหรือลบข้อมูล:
(ฉันได้แทนที่ชื่อฐานข้อมูลจริงด้วยคำว่าdatabase_name)

"บันทึกธุรกรรมสำหรับฐานข้อมูล 'database_name' เต็มเนื่องจาก 'XTP_CHECKPOINT'"

ไม่มีใครรู้ว่าทำไมสิ่งนี้จึงเกิดขึ้นและที่สำคัญฉันจะทำให้มันหยุดได้อย่างไร

และใช่ฐานข้อมูลอยู่ในโหมดการกู้คืนแบบง่าย ie บันทึกธุรกรรมควรตัดโดยอัตโนมัติ

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

บันทึกธุรกรรมสำหรับฐานข้อมูล 'database_name' เต็มเนื่องจาก 'XTP_CHECKPOINT'

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

ฉันสามารถทำซ้ำปัญหาโดยไม่มีสิ่ง XTP ใด ๆ เลยยกเว้นเฉพาะกลุ่มไฟล์ นี่คือวิธี: http://pastebin.com/jWSiEU9U

คำตอบ:


8

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

ไม่สามารถย่อขนาดไฟล์ล็อก X เนื่องจากไฟล์โลจิคัลล็อกอยู่ที่ท้ายไฟล์ถูกใช้งาน

จุดตรวจสอบด้วยตนเองล้มเหลว:

ข่าวสารเกี่ยวกับ 41315, ระดับ 16, สถานะ 4, การดำเนินการจุดตรวจสอบ Line N ล้มเหลวในฐานข้อมูล X

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

ในที่สุดหลังจากวันและคืนที่พยายามและค้นคว้าฉันพบวิธีแก้ปัญหาของฉันโดยการติดตั้ง3 การปรับปรุงที่สะสมสำหรับ SQL Server 2014 SP1


9

ก่อนอื่นตรวจสอบให้แน่ใจว่าการจำลองแบบไม่ได้ทำให้เกิดสิ่งนี้ตามที่ระบุไว้ในรายการเชื่อมต่อว่า "log_wait_reuse_desc = XTP_CHECKPOINT ไม่จำเป็นต้องหมายความว่าผู้ปฏิบัติงานจุดตรวจสอบ XTP กำลังหยุดการตัดทอนบันทึก" ดังนั้นเริ่มต้นด้วยการรันsp_repltransและตรวจสอบให้แน่ใจว่ามีการกระจายข้อมูลทั้งหมด

จากนั้นมีตัวอย่างเล็ก ๆ น้อย ๆที่นี่:

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

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

ดังนั้นหากการล้างข้อมูลการจำลองแบบไม่ทำงานให้ลองปฏิบัติดังนี้:

checkpoint;
dbcc shrinkfile (Logfile, truncateonly)
alter database [database] modify file (filename = 'TRANSACTIONLOG', FILEGROWTH = 5MB)

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


3

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


1

ฉันเคยพบสิ่งนี้กับลูกค้า ไฟล์ข้อมูลบันทึกและในหน่วยความจำ FILESTREAM อยู่ในไดรฟ์เดียวกัน พวกเขาสร้างไฟล์บันทึกใหม่ (มีคำแนะนำเล็กน้อย) แต่ระบบไม่สามารถตรวจสอบได้เนื่องจากไม่สามารถสร้างไฟล์จุดตรวจสอบในหน่วยความจำ (* .HKCKP)

ลองเพิ่มพื้นที่ว่างในไดรฟ์ด้วยข้อมูล FILESTREAM ในหน่วยความจำ

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