DBCC CHECKDB problemen met SQL Server Database-corruptie oplossen
Resumen: DBCC CHECKDB, DBCC, databasereparatie, database, beschadigde database
Síntomas
Causa
Resolución
DBCC is een native tool van Microsoft SQL Server die is ontworpen om Microsoft SQL Server Databases te controleren en te repareren. Dit artikel bespreekt de DBCC CHECKDB-opdracht en opties voor het controleren van de logische en fysieke integriteit van de database.
DBCC CHECKDB (Transact-SQL):
Stappen voor het uitvoeren van DBCC CHECKDB:
- Sql Server Studio-beheer openen
- Een queryvenster openen
- Typ "DBCC CHECKDB (databasenaam)"

DBCC-reparatieopties
- REPAIR_REBUILD: De onderstaande opdracht zet de database in een modus die reparatie mogelijk maakt.
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
Kopieer de onderstaande opdracht en plak deze in de querysessie met de juiste databasenaam:
--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: De onderstaande opdracht voert databasereparatie uit en kan leiden tot dataverlies om het reparatieproces te voltooien.
--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
Kopieer de onderstaande opdracht en plak deze in de querysessie met de juiste databasenaam:
Onderstaande opdrachten zijn handig als de fysieke schijfruimte van de database bijna leeg is.
--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
Kopieer de onderstaande opdracht en plak deze in de querysessie met de juiste databasenaam:
--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
Kopieer de onderstaande opdracht en plak deze in de querysessie en plaats de juiste databasenaam:
--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
