DBCC CHECKDB Dépannage de la corruption de la base de données SQL Server

Sammanfattning: DBCC CHECKDB, DBCC, réparation de base de données, base de données, base de données corrompue

Den här artikeln gäller för Den här artikeln gäller inte för Den här artikeln är inte kopplad till någon specifik produkt. Alla produktversioner identifieras inte i den här artikeln.

Symptom

Problème : La base de données MS SQL Server est corrompue et doit être réparée pour maintenir la stabilité et la cohérence.

Orsak

Altération du logiciel dans la base de données MS SQL Server, les logs et les fichiers d’application.

Upplösning

DBCC est un outil natif de Microsoft SQL Server conçu pour vérifier et réparer les bases de données Microsoft SQL Server.  Cet article traite de la commande DBCC CHECKDB et des options de vérification de l’intégrité logique et physique de la base de données.

Informations checkDB DBCC

DBCC CHECKDB (Transact-SQL) :

https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-checkdb-transact-sql?view=sql-server-ver15Ce lien hypertexte renvoie à un site Web extérieur à Dell Technologies.

Étapes d’exécution de DBCC CHECKDB :

  1. Ouvrez SQL Server Studio Management
  2. Ouvrir une fenêtre de requête
  3. Saisissez « DBCC CHECKDB (Nom de la base de données) »

Résultats de l’exécution de DBCC CHECKDB
 

        4. Vérifiez près du bas des résultats de la requête pour voir les erreurs d’allocation et de cohérence. 
        5.  Si des erreurs d’allocation et de cohérence apparaissent dans les résultats, la base de données doit être restaurée à partir d’une sauvegarde ou effectuer une réparation de base de données à l’aide de DBCC CHECKDB.          

Options de réparation DBCC

  1. REPAIR_REBUILD : La commande ci-dessous place la base de données en mode permettant la réparation.
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

Copiez la commande ci-dessous et collez-la dans la session de requête en entrant le nom de base de données correct :

--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 : La commande ci-dessous effectue la réparation de la base de données et peut entraîner une perte de données pour terminer le processus de réparation.

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

Copiez la commande ci-dessous et collez-la dans la session de requête en entrant le nom de base de données correct :

Les commandes ci-dessous sont utiles si l’espace disque physique de la base de données est faible.

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

Copiez la commande ci-dessous et collez-la dans la session de requête en entrant le nom de base de données correct :

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

Copiez la commande ci-dessous, collez-la dans la session de requête et saisissez le nom de base de données approprié :

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

Informations sur l’utilisation de DBCC CHECKDB

Berörda produkter

Dell Quickstart Data Warehouse Appliance, Prosupport for Microsoft Software
Artikelegenskaper
Artikelnummer: 000134529
Artikeltyp: Solution
Senast ändrad: 18 mars 2025
Version:  5
Få svar på dina frågor från andra Dell-användare
Supporttjänster
Kontrollera om din enhet omfattas av supporttjänster.