DBCC CHECKDB Solución de problemas de daños en la base de datos de SQL Server
Résumé: DBCC CHECKDB, DBCC, reparación de base de datos, base de datos, base de datos dañada
Symptômes
Cause
Résolution
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.
DBCC CHECKDB (Transact-SQL):
Pasos para ejecutar DBCC CHECKDB:
- Abra SQL Server Studio Management
- Abrir una ventana de consulta
- Escriba "DBCC CHECKDB (Database Name)"

Opciones de reparación de DBCC
- 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
