DBCC CHECKDB Troubleshooting von SQL Server-Datenbankbeschädigungen

Résumé: DBCC CHECKDB, DBCC, Datenbankreparatur, Datenbank, beschädigte Datenbank

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Symptômes

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

Cause

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

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

Produits concernés

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Propriétés de l’article
Numéro d’article: 000134529
Type d’article: Solution
Dernière modification: 18 Mar 2025
Version:  5
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.