DBCC CHECKDB Solução de problemas de corrupção do banco de dados do SQL Server
Resumo: DBCC CHECKDB, DBCC, reparo de banco de dados, banco de dados, banco de dados corrompido
Sintomas
Causa
Resolução
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.
DBCC CHECKDB (Transact-SQL):
Etapas para executar o DBCC CHECKDB:
- Abra o SQL Server Studio Management
- Abra uma janela de consulta
- Digite "DBCC CHECKDB (Database Name)"

Opções de reparo do DBCC
- 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
