Comment réparer une base de données SQL en utilisant la commande DBCC CHECKDB

Résumé: La commande de console de base de données (DBCC) CHECKDB est fréquemment utilisée par de nombreux administrateurs de bases de données (DBA) SQL Server pour identifier les erreurs dans la base de données. De plus, DBCC CHECKDB propose trois options de réparation pour corriger les erreurs liées à la base de données. Cet article explique comment utiliser DBCC CHECKDB pour réparer une base de données SQL. Il traite également d’un logiciel de réparation MS SQL spécialisé que vous pouvez utiliser lorsque DBCC CHECKDB ne parvient pas à réparer la base de données.  

En tant qu’administrateurs de bases de données (DBA), nous savons tous combien il est important d’exécuter régulièrement la commande de console de base de données (DBCC) CHECKDB pour vérifier l’intégrité physique et logique des objets de la base de données, les relations d’indexation et d’autres contrôles structurels. L’échec de l’une de ces vérifications signalera les erreurs de cohérence dans le cadre de la commande de la console de base de données.

La meilleure méthode pour réparer les erreurs dans la base de données, signalées par DBCC CHECKDB, consiste à exécuter la dernière bonne sauvegarde connue, comme le recommande Microsoft. Toutefois, si la sauvegarde n’est pas disponible (ou si elle est endommagée), vous pouvez essayer d’accéder à la base de données en état d’urgence.

L’état d’urgence permet d’accéder à une base de données qui est en mode suspect. Il permet également d’exécuter les options de réparation DBCC CHECKDB pour résoudre la corruption de la base de données.

Comment utiliser DBCC CHECKDB pour réparer une base de données SQL?

Téléchargez et installez ‘SQL Server Management Studio (SSMS)’ et suivez ces étapes pour réparer la base de données SQL en utilisant DBCC CHECKDB:

REMARQUE: Dans les étapes ci-dessous, nous utiliserons le nom de la base de données comme Dbtesting. Assurez-vous de remplacer DBtesting par le nom de votre base de données.

Étape 1: Mettre la base de données en mode d’urgence

Changez l’état de la base de données en mode EMERGENCY, qui fournit un accès en lecture seule à l’administrateur. Pour mettre la base de données en mode EMERGENCY, exécutez la requête suivante dans le fichier SSMS:

ALTER DATABASE [Dbtesting] SET EMERGENCY

Étape 2: Vérifier les erreurs de corruption

Une fois que l’administrateur est en mesure d’accéder à la base de données, exécutez la commande DBCC CHECKDB suivante pour analyser les erreurs de corruption dans la base de données:

DBCC CHECKDB (Dbtesting)

Si DBCC CHECKDB détecte des erreurs dans la base de données, il recommandera des options de réparation appropriées pour résoudre le problème.

Étape 3: Configurer la base de données du serveur SQL en mode mono-utilisateur

Avant d’utiliser les options de réparation DBCC CHECKDB, mettez la base de données corrompue en mode mono-utilisateur afin d’empêcher les autres utilisateurs de modifier les données pendant le processus de réparation. Pour définir le mode de base de données SQL sur SINGLE_USER, suivre ces méthodes:

Méthode 1: Utilisation de l’interface utilisateur graphique (GUI)

Méthode 2: Utilisation des commandes Transact-SQL (T-SQL)

Vous pouvez également définir la base de données en mode SINGLE_USER, en exécutant la requête T-SQL suivante dans SSMS:

ALTER DATABASE Dbtesting SET SINGLE_USER

Étape 4: Réparer la base de données

Une fois que vous avez changé le mode de la base de données en SINGLE_USER, exécutez DBCC CHECKDB avec l’option REPAIR_ALLOW_DATA_LOSS option de réparation de la base de données du serveur SQL:

REMARQUES:

  1. Outre le mode de réparation REPAIR_ALLOW_DATA_LOSS, DBCC offre également deux autres modes de réparation:
    • REPAIR_FAST: Cette option de réparation n’effectue aucune action de réparation. Elle permet de maintenir la syntaxe pour une compatibilité descendante.
    • REPAIR_REBUILD: L’option REPAIR_REBUILD permet de réparer la base de données sans aucune perte de données. Elle peut être utilisée pour réparer les lignes manquantes dans les index non groupés, et pour reconstruire un index.
  2. Si l’option de réparation REPAIR_ALLOW_DATA_LOSS permet de réparer toutes les erreurs signalées dans la base de données du serveur SQL, elle n’est pas la meilleure option pour réparer la corruption de la base de données. Cette option de réparation entraîne une perte de données. En fait, Microsoft recommande d’utiliser l’option REPAIR_ALLOW_DATA_LOSS en dernier recours lorsque vous ne pouvez pas restaurer une base de données à partir de la sauvegarde. Si vous n’avez pas de sauvegarde et que vous ne pouvez pas risquer de perdre des données, utilisez un logiciel de réparation MS SQL spécialisé pour réparer la base de données sans perte d’intégrité.
DBCC CHECKDB (N ?Dbtesting?, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS, NO_INFOMSGS;
GO

Étape 5: Remettre la base de données en mode MULTI_USER

Après avoir réparé la base de données avec succès, configurez la base de données en mode MULTI_USER en exécutant la commande suivante:

ALTER DATABASE Dbtesting SET MULTI_USER

Que pouvez-vous faire d’autre lorsque DBCC CHECKDB échoue?

L’exécution de la commande DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS peut nécessiter la suppression de certaines pages de la base de données, ce qui entraîne une perte de données. En outre, les commandes DBCC CHECKDB peuvent échouer et renvoyer une erreur lorsqu’elles traitent des fichiers de base de données SQL gravement corrompus.

Utilisez le logiciel Stellar Repair for MS SQL pour réparer une base de données MS SQL gravement corrompue et restaurer tous ses composants, tout en maintenant l’intégrité de la base de données. Le logiciel de récupération SQL permet de rétablir l’accès à la base de données avec un minimum d’efforts manuels et de temps.

Caractéristiques principales:

Conclusion:

DBCC CHECKDB peut aider à vérifier les erreurs de cohérence et la corruption des bases de données MS SQL. Une base de données corrompue peut entraîner des temps d’arrêt inutiles et des pertes de données. Pour résoudre les erreurs liées à la base de données, restaurez la base de données à partir de la sauvegarde la plus récente.

Si la sauvegarde actuelle de la base de données n’existe pas ou si la sauvegarde elle-même est corrompue, vous pouvez utiliser l’option de réparation DBCC CHECKDB ‘REPAIR_ALLOW_DATA_LOSS’ pour réparer la base de données. Mais cette option de réparation comporte un risque de perte de données. De plus, DBCC CHECKDB peut ne pas réussir à résoudre le problème.

Utilisez le logiciel Stellar Repair for MS SQL pour réparer la base de données MS SQL et récupérer tous ses composants avec précision, en conservant la structure de la base de données et l’intégrité de ses objets.

Related Post