DBCC CHECKDB Solução de problemas de corrupção do banco de dados do SQL Server

Resumen: DBCC CHECKDB, DBCC, reparo de banco de dados, banco de dados, banco de dados corrompido

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. En este artículo no se identifican todas las versiones de los productos.

Síntomas

Problema: O banco de dados do MS SQL Server está corrompido e precisa ser reparado para manter a estabilidade e a consistência.

Causa

Corrupção de software para banco de dados, registros e arquivos de aplicativos do MS SQL Server.

Resolución

O DBCC é uma ferramenta nativa do Microsoft SQL Server projetada para verificar e reparar bancos de dados do Microsoft SQL Server.  Este artigo discute o comando DBCC CHECKDB e as opções para verificar a integridade lógica e física do banco de dados.

Informações do 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-ver15Esse hiperlink direcionará você para um site fora da Dell Technologies.

Etapas para executar o DBCC CHECKDB:

  1. Abra o SQL Server Studio Management
  2. Abra uma janela de consulta
  3. Digite "DBCC CHECKDB (Database Name)"

Resultados da execução do DBCC CHECKDB
 

        4. Verifique perto da parte inferior dos resultados da consulta para ver erros de alocação e consistência. 
        5.  Se erros de alocação e consistência forem exibidos nos resultados, o banco de dados deverá ser restaurado a partir do backup ou executar um reparo de banco de dados usando o DBCC CHECKDB.          

Opções de reparo do DBCC

  1. REPAIR_REBUILD: O comando abaixo coloca o banco de dados em um modo que permite o reparo.
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 o comando abaixo e cole-o na sessão de consulta, colocando o nome correto do banco de dados:

--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: O comando abaixo executa o reparo do banco de dados e pode resultar em perda de dados para concluir o processo de reparo.

--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 o comando abaixo e cole-o na sessão de consulta, colocando o nome correto do banco de dados:

Os comandos abaixo são úteis se o espaço em disco físico do banco de dados estiver baixo.

--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 o comando abaixo e cole-o na sessão de consulta, colocando o nome correto do banco de dados:

--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 o comando abaixo e cole-o na sessão de consulta e insira o nome correto do banco de dados:

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

Informações sobre quando usar o DBCC CHECKDB

Productos afectados

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Propiedades del artículo
Número de artículo: 000134529
Tipo de artículo: Solution
Última modificación: 18 mar 2025
Versión:  5
Encuentra las respuestas que necesitas con la ayuda de otros usuarios de Dell
Servicios de asistencia
Comprueba si tu dispositivo está cubierto por los servicios de asistencia.