DBCC CHECKDB SQL Server 数据库损坏故障排除
Resumen: DBCC CHECKDB, DBCC, 数据库修复, 数据库, 损坏的数据库
Este artículo se aplica a
Este artículo no se aplica a
Este artículo no está vinculado a ningún producto específico.
No se identifican todas las versiones del producto en este artículo.
Síntomas
问题:MS SQL Server 数据库已损坏,需要修复以保持稳定性和一致性。
Causa
MS SQL Server 数据库、日志和应用程序文件的软件损坏。
Resolución
DBCC 是 Microsoft SQL Server 的本机工具,旨在检查和修复 Microsoft SQL Server 数据库。 本文讨论 DBCC CHECKDB 命令以及检查数据库逻辑和物理完整性的选项。
DBCC CHECKDB (Transact-SQL):
运行 DBCC CHECKDB 的步骤:
- 打开 SQL Server Studio 管理
- 打开查询窗口
- 键入 “DBCC CHECKDB (Database Name)”

4.在查询结果底部附近检查以查看分配和一致性错误。
5. 如果结果中出现分配和一致性错误,则应从备份恢复数据库或使用 DBCC CHECKDB 执行数据库修复。
DBCC 修复选项
- 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

Productos afectados
Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft SoftwarePropiedades del artículo
Número del artículo: 000134529
Tipo de artículo: Solution
Última modificación: 18 mar 2025
Versión: 5
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.