DBCC CHECKDB SQL Serverデータベースの破損のトラブルシューティング

概要: DBCC CHECKDB, DBCC, データベース修復, データベース, 破損したデータベース

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

現象

トピック: MS SQL Serverデータベースが破損しており、安定性と整合性を維持するために修復する必要があります。

原因

MS SQL Serverデータベース、ログ、アプリケーション ファイルへのソフトウェア破損。

解決方法

DBCCは、Microsoft SQL Serverデータベースのチェックと修復を目的として設計されたMicrosoft SQL Serverのネイティブ ツールです。  この文書では、DBCC CHECKDBコマンドと、データベースの論理および物理整合性をチェックする際のオプションについて説明します。

DBCC CHECKDB情報

DBCC CHECKDB(Transact-SQL):

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15このハイパーリンクをクリックすると、デル・テクノロジーズ以外のWebサイトにアクセスします。

DBCC CHECKDBを実行する手順:

  1. SQL Server Studio管理を開く
  2. クエリ ウィンドウを開く
  3. 「DBCC CHECKDB (Database Name)」と入力します

DBCC CHECKDB実行の結果
 

        4.クエリ結果の下部近くで、割り当てエラーと整合性エラーを確認します。 
        5.  割り当てと整合性エラーが結果に表示される場合は、データベースをバックアップからリストアするか、DBCC CHECKDBを使用してデータベース修復を実行する必要があります。          

DBCC修復オプション

  1. REPAIR_REBUILD: 次のコマンドを実行すると、データベースが修復可能なモードになります。
USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
GO
ALTER DATABASE TSQL2012
SET MULTI_USER;
GO

次のコマンドをコピーし、正しいデータベース名を入力してクエリー セッションに貼り付けます。

--Command below performs a Database repair not allowing Data loss

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012,REPAIR_REBUILD)
GO
ALTER DATABASE TSQL2012
SET MULTI_USER;
GO

       2.REPAIR_ALLOW_DATA_LOSS: 以下のコマンドを実行すると、データベースの修復が実行され、修復プロセスを完了するためにデータが失われる可能性があります。

--Command below performs a database repair that may result in data loss,
 --replace TSQL2012 with the database name of database being repaired
USE Master
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
GO
DBCC CHECKDB (TSQL2012, REPAIR_ALLOW_DATA_LOSS)
GO
ALTERDATABASE TSQL2012
SET MULTI_USER
GO

次のコマンドをコピーし、正しいデータベース名を入力してクエリー セッションに貼り付けます。

次のコマンドは、データベースの物理ディスク領域が不足している場合に便利です。

--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job
USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH ESTIMATEONLY;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

次のコマンドをコピーし、正しいデータベース名を入力してクエリー セッションに貼り付けます。

--Command below estimates the size TEMPDB must be to complete the DBCC CHECKDB job

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH ESTIMATEONLY;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

 

--Command below will run DBCC CHECKDB without using TEMDB and creating a DB 
--snapshot. When not using TEMPDB with a DB snapshot all data will be checked in
-- the live database not not a database snapshot.

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH TABLOCK;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

次のコマンドをコピーしてクエリー セッションに貼り付け、正しいデータベース名を入力します。

--Command below will run DBCC CHECKDB without using TEMPDB and creating a DB 
--snapshot. When not using TEMPDB with a DB snapshot all data will be checked in ---the live database not a database snapshot.

USE Master;
GO
ALTER DATABASE TSQL2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (TSQL2012, REPAIR_REBUILD)
WITH TABLOCK;
GO
ALTER DATABASE TSQL2012
SET MULTI_USER
GO

DBCC CHECKDBを使用するタイミングに関する情報

対象製品

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
文書のプロパティ
文書番号: 000134529
文書の種類: Solution
最終更新: 18 3月 2025
バージョン:  5
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。