DBCC CHECKDB Troubleshooting von SQL Server-Datenbankbeschädigungen
Résumé: DBCC CHECKDB, DBCC, Datenbankreparatur, Datenbank, beschädigte Datenbank
Symptômes
Cause
Résolution
DBCC ist ein natives Tool von Microsoft SQL Server, das entwickelt wurde, um Microsoft SQL Server-Datenbanken zu überprüfen und zu reparieren. In diesem Artikel werden der DBCC CHECKDB-Befehl und Optionen zur Prüfung der logischen und physischen Integrität der Datenbank erläutert.
DBCC CHECKDB (Transact-SQL):
Schritte zum Ausführen von DBCC CHECKDB:
- Öffnen Von SQL Server Studio Management
- Öffnen eines Abfragefensters
- Geben Sie "DBCC CHECKDB (Database Name)" ein.

DBCC-Reparaturoptionen
- REPAIR_REBUILD: Mit dem folgenden Befehl wird die Datenbank in einen Modus versetzt, der eine Reparatur ermöglicht.
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
Kopieren Sie den folgenden Befehl und fügen Sie ihn in die Abfragesitzung ein, die den korrekten Datenbanknamen enthält:
--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: Der folgende Befehl führt eine Datenbankreparatur durch und kann zu Datenverlust führen, um den Reparaturprozess abzuschließen.
--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
Kopieren Sie den folgenden Befehl und fügen Sie ihn in die Abfragesitzung ein, die den korrekten Datenbanknamen enthält:
Die folgenden Befehle sind nützlich, wenn der physische Speicherplatz der Datenbank knapp wird.
--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
Kopieren Sie den folgenden Befehl und fügen Sie ihn in die Abfragesitzung ein, die den korrekten Datenbanknamen enthält:
--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
Kopieren Sie den folgenden Befehl und fügen Sie ihn in die Abfragesitzung ein und geben Sie den korrekten Datenbanknamen ein:
--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
