DBCC CHECKDB ([MyDb]) WITH NO_INFOMSGS, ALL_ERRORMSGS, PHYSICAL_ONLY
を実行します
そして20秒後、エラーで失敗します:
Msg 5030、Sev 16、State 12、Line 1:操作を実行するためにデータベースを排他的にロックできませんでした。 [SQLSTATE 42000]
メッセージ7926、Sev 16、状態1、1行目:チェックステートメントが中止されました。データベーススナップショットを作成できず、データベースまたはテーブルをロックできなかったため、データベースをチェックできませんでした。この動作が予想される時期と回避策の詳細については、BooksOnlineを参照してください。詳細については、以前のエラーも参照してください。 [SQLSTATE 42000]
データベースは1TB、SQL Server2005です。
DBCCに排他的なデータベースロックが必要なのはなぜですか?どうすればチェックを完了できますか?
追加:データベースへのすべての接続を強制終了してからチェックを実行すると、DBCCは正常に実行されます。 sp_who2は、.NetSQLClientプロバイダーを使用してWebサーバーからDBにアクセスするユーザーを示します
SQL Serverサービスは、ローカル管理者であるWindowsアカウントで実行されます。
最終的にスナップショットを作成し、その上でDBCCを実行しました。
ほとんどの場合、SQLサービスアカウントには、必要なスナップショットファイルを作成するためのアクセス許可がありません。
アクティブなデータベースでは、割り当てチェックの実行に必要なXデータベースロックをCHECKDBが取得できる可能性はほとんどありません。そのため、ロックタイムアウトをわずか20秒(IIRC)に変更しました。
ありがとう
スナップショットの作成を停止している根本的な原因がわかりません。しかし、Tablock
オプションを指定してDBCC CheckDB
を実行して、機能するかどうかを確認しましたか? ( オンラインで明示的に予約 状態tablock
オプション "データベースの短期排他(X)ロックが含まれます。")ただし、少なくともスナップショットは作成されないため、今回はDBCCCheckDBがこのオプションで成功する可能性があります。もう1つのオプションは、これは重要なシステムではなく、ダウンタイムを許容できることです。シングルユーザーモードに変更して、DBCCを再度実行してみてくださいOR別の場所に復元し、テスト環境がある場合はDBCCを実行してください。
あなたの行く人は Paul Randalのブログ CheckDBのすべてのものでなければなりません。
File > Disconnect Object Explorer
)File > Connect Object Explorer
)use master
(注:上記のコマンドは、現在のデータベースをマスターにします。これは、次の一連のコマンドを実行する前に重要です。)ALTER DATABASE MyDatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE MyDatabaseName SET SINGLE_USER WITH ROLLBACK AFTER 30
ALTER DATABASE MyDatabaseName SET SINGLE_USER WITH NO_WAIT
ALTER DATABASE MyDatabaseName SET MULTI_USER WITH ROLLBACK IMMEDIATE;
これで完了です。これで、以前に実行しようとしていたDatabase could not be exclusively locked to perform the operation
エラーが発生したコマンドまたは操作を試すことができます。
非表示のデータベーススナップショットの容量が不足すると、問題が発生することがあります。データベーススナップショットは、既存のデータファイルの代替ストリームを使用して実装されているため、既存のデータファイルと同じ場所のスペースを消費します。チェック対象のデータベースの更新ワークロードが大きい場合、データベーススナップショットにプッシュされるページが増え、データベースが大きくなります。データベースをホストしているボリュームに十分なスペースがない状況では、これは、非表示のデータベーススナップショットのスペースが不足し、DBCCCHECKDBがエラーで停止することを意味する場合があります。この例を次に示します(エラーは、データベーススナップショットのスペースが不足する正確なポイントによって異なる場合があります)。
このリンクを試してください
http://sqlism.blogspot.com/2014/10/a-database-snapshot-cannot-be-created.html