DBCC CHECKDB 疑難解答 SQL 伺服器資料庫損毀

Summary: DBCC CHECKDB、DBCC、資料庫修復、資料庫、資料庫損毀

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

問題:MS SQL Server 資料庫損毀,需要修復才能維持穩定性和一致性。

Cause

MS SQL Server 資料庫、記錄和應用程式檔案的軟體損毀。

Resolution

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此超連結會帶您前往 Dell Technologies 以外的網站。

執行 DBCC CHECKDB 的步驟:

  1. 開啟 SQL Server Studio 管理
  2. 開啟查詢視窗
  3. 「DBCC CHECKDB (資料庫名稱)」中輸入

執行 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 的資訊

Affected Products

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Article Properties
Article Number: 000134529
Article Type: Solution
Last Modified: 18 Mar 2025
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.