Comment réparer une base de données SQL avec la commande DBCC CHECKDB ?

Summary: vous pouvez utiliser la commande DBCC CHECKDB dans SQL Server pour vérifier et réparer une base de données SQL endommagée. Cet article explique comment utiliser la commande DBCC CHECKDB pour réparer la base de données SQL. Il mentionne également un logiciel spécial de réparation MS SQL que vous pouvez utiliser pour réparer une base de données SQL corrompue en quelques étapes simples et sans perte de données.

Les commandes de la console de base de données (DBCC) sont utilisées pour la gestion et l’administration des bases de données dans le serveur SQL. La commande DBCC CHECKDB est utilisée pour vérifier l’intégrité logique et physique de la base de données SQL. Elle permet d’identifier et de rectifier les problèmes structurels et liés à la corruption de la base de données SQL.

Comment fonctionne la commande DBCC CHECKDB ?

La commande effectue une recherche approfondie dans la base de données et réalise des contrôles d’intégrité et d’autres contrôles structurels. Si l’un de ces contrôles échoue, elle affiche des erreurs de cohérence qui indiquent des problèmes dans la base de données et recommande une option de réparation appropriée. Examinons la syntaxe de la commande DBCC CHECKDB.

DBCC CHECKDB   
    [ ( db_name | db_id | 0
        [ , NOINDEX   
        | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]
    ) ]
    [ MIT  
        {
            [ ALL_ERRORMSGS ]
            [ , EXTENDED_LOGICAL_CHECKS ]
            [ , NO_INFOMSGS ]
            [ , TABLOCK ]
            [ , ESTIMÉ ]
            [ , { PHYSICAL_ONLY | DATA_PURITY } ]
            [ , MAXDOP = nombre_de_processeurs ]
        }
    ]
Copier le code

Comprenons maintenant les différentes options utilisées dans la commande DBCC CHECKDB ci-dessus.

Étapes pour réparer la base de données SQL avec la commande DBCC CHECKDB

Pour exécuter la commande DBCC CHECKDB, assurez-vous que vous disposez des droits d’administrateur appropriés. Ouvrez ensuite SQL Server Management Studio (SSMS) et effectuez les étapes suivantes :

Remarque : Nous utiliserons le nom de la base de données comme Dbtesting. Veillez à remplacer “Dbtesting” par le nom de votre base de données.

Etape n°1 : Mettre la base de données en mode d’urgence

Si l’accès à la base de données n’est pas possible, passez d’abord l’état de la base de données en mode URGENCE. L’administrateur dispose ainsi d’un accès en lecture seule. Pour mettre la base de données en mode URGENCE, exécutez la requête suivante dans SSMS :

ALTER DATABASE [Dbtesting] SET 

Étape 2 : Vérifiez que la base de données n’est pas corrompue

Après avoir mis la base de données en mode d’urgence, exécutez la commande suivante pour vérifier l’absence d’erreurs de corruption dans la base de données :

DBCC CHECKDB (Dbtesting) 

Si la commande DBCC CHECKDB détecte des erreurs ou des dommages dans la base de données, elle recommande une option de réparation appropriée.

Étape 3 : Mettre la base de données en mode SINGLE_USER

Avant d’utiliser l’option de réparation, vous devez mettre la base de données en mode SINGLE_USER pour empêcher d’autres utilisateurs de modifier les données pendant le processus de réparation. Pour définir la base de données en mode SINGLE_USER, exécutez la requête T-SQL suivante dans SSMS :

ALTER DATABASE Dbtesting SET SINGLE_USER 

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

Après avoir mis la base de données en mode SINGLE_USER, exécutez la commande avec l’option REPAIR recommandée par la commande DBCC CHECKDB. Si un message d’erreur s’affiche et recommande REPAIR_REBUILD comme niveau de réparation minimum, exécutez la commande DBCC CHECKDB avec l’option REPAIR_REBUILD comme indiqué ci-dessous :

DBCC CHECKDB (' Dbtesting ', REPAIR_REBUILD)
Code GOCopy

Vous pouvez utiliser cette commande pour remettre la base de données en état sans perdre de données. Elle peut réparer les lignes manquantes dans les index non groupés et aider à rectifier les erreurs de corruption mineures. Toutefois, cette option prend beaucoup de temps.

Vous pouvez également utiliser REPAIR_FAST avec la commande ci-dessous :

DBCC CHECKDB (' Dbtesting ', REPAIR_FAST)
Code GOCopy

Cette option de réparation ne fait que conserver la compatibilité descendante de la syntaxe et n’effectue aucune mesure de réparation.

Si les options de réparation ci-dessus échouent ou si la commande DBCC CHECKDB recommande d’utiliser l’option de réparation REPAIR_ALLOW_DATA_LOSS, exécutez la commande DBCC CHECKDB comme indiqué ci-dessous :

DBCC CHECKDB (N 'Dbtesting', REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS, NO_INFOMSGS ; 
Code GOCopy

L’option de réparation REPAIR_ALLOW_DATA_LOSS permet de réparer toutes les erreurs signalées dans la base de données SQL Server, mais entraîne une perte de données. Microsoft recommande de n’utiliser l’option REPAIR_ALLOW_DATA_LOSS qu’en dernier recours.

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

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

ALTER DATABASE Dbtesting SET 

Inconvénients de la commande DBCC CHECKDB

Bien que la commande DBCC CHECKDB puisse résoudre les problèmes de cohérence de la base de données, vous devez être conscient des inconvénients suivants si vous utilisez la commande avec l’option REPAIR_ALLOW_DATA_LOSS :

Une alternative à la commande DBCC CHECKDB

Pour surmonter les inconvénients de la commande DBCC CHEKDB et réparer la base de données SQL endommagée avec une intégrité complète, vous pouvez utiliser un logiciel de réparation MS SQL spécialisé tel que Stellar Repair for MS SQL. Le logiciel répare les bases de données MS SQL gravement endommagées et remet en état tous ses composants. Le logiciel de récupération de données aide à remettre l’accès à la base de données avec un minimum d’effort manuel et de temps.

Caractéristiques importantes :

Conclusion

Si votre base de données SQL est endommagée, vous pouvez utiliser la commande DBCC CHECKDB pour la vérifier et la réparer. Nous avons expliqué ci-dessus comment utiliser la commande DBCC CHECKDB pour réparer votre base de données SQL. Cependant, l’utilisation de la commande DBCC CHECKDB avec REPAIR_ALLOW_DATA_LOSS comporte un risque de perte de données. Pour réparer la base de données endommagée sans perte de données, vous pouvez utiliser un logiciel de réparation MS SQL spécialisé comme Stellar Repair for MS SQL. Ce logiciel vous aide à récupérer tous les composants de la base de données SQL, y compris les tables, les registres de table supprimés, les index, les vues, etc. Vous pouvez télécharger le logiciel gratuitement pour tester sa fonctionnalité et son efficacité.

Related Post

Exit mobile version