現象
Microsoft SQL Server 2014 に読み取り専用のファイルグループが含まれているデータベースがあることを前提としています。 データベースで DBCC CHECKDB を実行した場合、 dbcc コマンドでデータベースのデータベーススナップショットを作成することはできません。データベースへの接続が他にない場合、DBCC 操作はエラーなしで完了します。 ただし、次のエラーメッセージが表示されます。
DBCC CHECKDB では、データベーススナップショットを作成できなかった、または TABLOCK が指定されているため、SQL Server catalog または Service Broker の一貫性がチェックされません。
他にもデータベースへの接続がある場合、DBCC 操作は失敗し、次のエラーメッセージが表示されます。
メッセージ5030、レベル16、状態12、行1Outlook データベースを排他的にロックして操作を実行することはできませんでした。メッセージ7926、レベル16、状態1、行1のチェックステートメントは中止されました。 データベーススナップショットを作成できなかったため、データベースまたはテーブルをロックできなかったため、データベースを確認できませんでした。 この動作が予期されるタイミングと回避策の詳細については、Books Online を参照してください。 詳細については、以前のエラーも参照してください。
解決方法
累積的な更新情報
この問題は、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.
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。