Symptom
Anta att du har en databas som innehåller skrivskyddade filgrupper i Microsoft SQL Server 2014. När du kör DBCC CHECKDB på databasen kan inte kommandot DBCC skapa en databas ögonblicks bild för databasen. Om det inte finns någon annan koppling till databasen utförs DBCC-åtgärden utan fel. Men du får följande fel meddelande:
DBCC CHECKDB kontrollerar inte SQL Server Catalog eller Service Broker-konsekvens eftersom det inte gick att skapa en databas ögonblicks bild eller på grund av att TABLOCK har angetts.
Om det finns andra anslutningar till databasen Miss lyckas DBCC-åtgärden och du får följande fel meddelande:
Meddelande 5030, nivå 16, State 1The databasen kan inte låsas exklusivt för att utföra åtgärden. Meddelande 7926, nivå 16, tillstånd 1, rad 1Check-uttryck avbrutet. Det gick inte att kontrol lera databasen eftersom det inte gick att skapa en databas stillbild och databasen eller tabellen inte är låst. Se Books Online för information om när det här är förväntat och vilka lösningar som finns. Se även tidigare fel för mer information.
Lösning
Kumulativ uppdaterings information
Problemet är först åtgärdat i den kumulativa uppdateringen av SQL Server.
Varje ny kumulativ uppdatering för SQL Server innehåller alla snabb korrigeringar och alla säkerhets korrigeringar som ingick i den föregående kumulativa uppdateringen. Vi rekommenderar att du laddar ner och installerar de senaste kumulativa uppdateringarna för SQL Server:
Mer information
Om du vill återskapa problemet kör du följande kommandon i 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.
Status
Microsoft har bekräftat att det här är ett problem i Microsoft-produkterna som nämns i "gäller".