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

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

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

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

Cause

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

Resolution

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

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.