อาการ
สมมติว่าคุณมีฐานข้อมูลที่มี filegroups แบบอ่านอย่างเดียวใน Microsoft SQL Server ๒๐๑๔ เมื่อคุณเรียกใช้ DBCC CHECKDB บนฐานข้อมูลคำสั่ง DBCC ไม่สามารถสร้าง snapshot ของฐานข้อมูลสำหรับฐานข้อมูลได้ ถ้าไม่มีการเชื่อมต่อกับฐานข้อมูลอื่นการดำเนินการ DBCC จะเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด อย่างไรก็ตามคุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
DBCC CHECKDB จะไม่ตรวจสอบความสอดคล้องของแค็ตตาล็อก SQL Server หรือความสอดคล้องของนายหน้าบริการเนื่องจากไม่สามารถสร้าง snapshot ของฐานข้อมูลหรือเนื่องจากมีการระบุ TABLOCK
ถ้ามีการเชื่อมต่ออื่นๆกับฐานข้อมูลการดำเนินการ DBCC ล้มเหลวและคุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ข่าวสารเกี่ยวกับ๕๐๓๐ระดับ16สถานะ 12, ฐานข้อมูล1The บรรทัดไม่สามารถถูกล็อกแบบเอกสิทธิ์เฉพาะบุคคลเพื่อดำเนินการ Msg ๗๙๒๖ระดับ16สถานะ1บรรทัดคำสั่ง1Check ถูกยกเลิก ไม่สามารถสร้างฐานข้อมูลได้เนื่องจากไม่สามารถสร้าง snapshot ของฐานข้อมูลและฐานข้อมูลหรือตารางไม่สามารถล็อกได้ ดูหนังสือออนไลน์สำหรับรายละเอียดของเมื่อมีการทำงานนี้ที่คาดไว้และมีการแก้ไขปัญหาอะไรบ้าง ดูข้อผิดพลาดก่อนหน้านี้สำหรับรายละเอียดเพิ่มเติม
การแก้ไข
ข้อมูลการอัปเดตที่สะสม
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ครั้งแรก
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ เราขอแนะนำให้คุณดาวน์โหลดและติดตั้งการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
ข้อมูลเพิ่มเติม
เมื่อต้องการทบทวนเกิดปัญหานี้ให้เรียกใช้คำสั่งต่อไปนี้ใน SQL Server:
-- Open a new query that is named conn1, and then create a new database. CREATE DATABASE DbTest GO -- Add a new file group. ALTER DATABASE DbTest ADD FILEGROUP FGTest GO -- Add a file to the new file group. ALTER DATABASE DbTest ADD FILE (NAME=DbTest_Data2, FILENAME=''C:\temp\DbTest_Data2.ndf') TO FILEGROUP FGTest GO -- Change the file group to read-only. ALTER DATABASE DbTest MODIFY FILEGROUP FGTest READONLY GO -- Run the DBCC CHECK command in the conn1 query. DBCC CHECKDB (DbTest) -- The DBCC CHECK command runs correctly. However, you may receive the following message: "DBCC CHECKDB will not check SQL Server catalog or Service Broker consistency because a database snapshot could not be created or because WITH TABLOCK was specified." -- Open a new query window that is named conn2, and then set the database as DbTest. This action opens a connection to the DbTest database. -- Return to the conn1 query, and run the DBCC command again. DBCC CHECKDB (DbTest) -- Notice the error message that is mentioned in the "Symptoms" section.
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"