DBCC CHECKDB Troubleshooting von SQL Server-Datenbankbeschädigungen

Zusammenfassung: DBCC CHECKDB, DBCC, Datenbankreparatur, Datenbank, beschädigte Datenbank

Dieser Artikel gilt für Dieser Artikel gilt nicht für Dieser Artikel ist nicht an ein bestimmtes Produkt gebunden. In diesem Artikel werden nicht alle Produktversionen aufgeführt.

Symptome

Problem: Die MS SQL Server-Datenbank ist beschädigt und muss repariert werden, um Stabilität und Konsistenz aufrechtzuerhalten.

Ursache

Softwarebeschädigung in MS SQL Server-Datenbank, Protokollen und Anwendungsdateien.

Lösung

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-Informationen

DBCC CHECKDB (Transact-SQL):

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15Dieser Hyperlink führt Sie zu einer Website außerhalb von Dell Technologies.

Schritte zum Ausführen von DBCC CHECKDB:

  1. Öffnen Von SQL Server Studio Management
  2. Öffnen eines Abfragefensters
  3. Geben Sie "DBCC CHECKDB (Database Name)" ein.

Ergebnisse für DBCC CHECKDB-Ausführung
 

        4. Überprüfen Sie am unteren Rand der Abfrageergebnisse, um Zuordnungs- und Konsistenzfehler anzuzeigen. 
        5.  Wenn in den Ergebnissen Zuweisungs- und Konsistenzfehler angezeigt werden, sollte die Datenbank entweder aus dem Backup wiederhergestellt oder eine Datenbankreparatur mit DBCC CHECKDB durchgeführt werden.          

DBCC-Reparaturoptionen

  1. 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

Informationen zur Verwendung von DBCC CHECKDB

Betroffene Produkte

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Artikeleigenschaften
Artikelnummer: 000134529
Artikeltyp: Solution
Zuletzt geändert: 18 März 2025
Version:  5
Antworten auf Ihre Fragen erhalten Sie von anderen Dell NutzerInnen
Support Services
Prüfen Sie, ob Ihr Gerät durch Support Services abgedeckt ist.