DBCC CHECKDB Solución de problemas de daños en la base de datos de SQL Server

摘要: DBCC CHECKDB, DBCC, reparación de base de datos, base de datos, base de datos dañada

本文章適用於 本文章不適用於 本文無關於任何特定產品。 本文未識別所有產品版本。

症狀

Problema: La base de datos de MS SQL Server está dañada y se debe reparar para mantener la estabilidad y la coherencia.

原因

Daños de software en la base de datos, los registros y los archivos de aplicación de MS SQL Server.

解析度

DBCC es una herramienta nativa de Microsoft SQL Server diseñada para comprobar y reparar bases de datos de Microsoft SQL Server.  En este artículo, se analiza el comando DBCC CHECKDB y las opciones para comprobar la integridad lógica y física de la base de datos.

Información de 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-ver15Este hipervínculo lo redirige a un sitio web fuera de Dell Technologies.

Pasos para ejecutar DBCC CHECKDB:

  1. Abra SQL Server Studio Management
  2. Abrir una ventana de consulta
  3. Escriba "DBCC CHECKDB (Database Name)"

Resultados de la ejecución de DBCC CHECKDB
 

        4. Compruebe cerca de la parte inferior de los resultados de la consulta para ver los errores de asignación y coherencia. 
        5.  Si aparecen errores de asignación y coherencia en los resultados, la base de datos se debe restaurar desde el respaldo o realizar una reparación de la base de datos mediante DBCC CHECKDB.          

Opciones de reparación de DBCC

  1. REPAIR_REBUILD: El siguiente comando coloca la base de datos en un modo que permite la reparación.
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

Copie el siguiente comando y péguelo en la sesión de consulta colocando el nombre correcto de la base de datos:

--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: El siguiente comando realiza la reparación de la base de datos y puede provocar la pérdida de datos para completar el proceso de reparación.

--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

Copie el siguiente comando y péguelo en la sesión de consulta colocando el nombre correcto de la base de datos:

Los siguientes comandos son útiles si el espacio en disco físico de la base de datos se está agotando.

--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

Copie el siguiente comando y péguelo en la sesión de consulta colocando el nombre correcto de la base de datos:

--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

Copie el siguiente comando y péguelo en la sesión de consulta y escriba el nombre correcto de la base de datos:

--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

Información sobre cuándo utilizar DBCC CHECKDB

受影響的產品

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
文章屬性
文章編號: 000134529
文章類型: Solution
上次修改時間: 18 3月 2025
版本:  5
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。