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

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

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

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

Causa

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

Resolución

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

Productos afectados

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Propiedades 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.