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

摘要: DBCC CHECKDB, DBCC, reparo de banco de dados, banco de dados, banco de dados corrompido

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

症狀

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

原因

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

解析度

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

受影響的產品

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