Comment corriger une page corrompue dans SQL Server ?

Summary: dans ce billet, nous allons parler de la cause profonde de la corruption au niveau de la page dans le serveur SQL. Nous discuterons également des moyens de réparer la corruption et de restaurer la base de données. De plus, vous découvrirez un logiciel de réparation de base de données SQL qui peut facilement réparer une base de données corrompue et restaurer tous ses objets.

La page est l’unité de stockage principale du serveur SQL. Toutes les informations contenues dans les fichiers de base de données SQL Server (MDF/NDF) sont stockées dans des pages de 8 Ko de taille. Chaque page commence par un en-tête de 96 octets qui contient des informations telles que le numéro de page, le type de page, l’espace libre, etc. Si une page est corrompue, cela peut affecter l’ensemble de la base de données. Si une page est corrompue, cela peut affecter l’ensemble de la base de données. Dans ce cas, vous recevrez divers messages d’erreur lors de l’ouverture du fichier de la base de données, voire vous ne pourrez plus accéder à la base de données. Il est donc important de corriger immédiatement les dommages au niveau de la page. Dans cet article, vous apprendrez comment réparer une page endommagée dans une base de données SQL Server.

Comment reconnaître une corruption dans la base de données du serveur SQL ?

Avant de trouver des solutions pour remédier à la corruption, vous devez vérifier que la base de données SQL n’est pas corrompue. Il existe plusieurs façons de vérifier la présence d’une corruption au niveau des pages dans une base de données SQL Server. Certaines d’entre elles sont expliquées ci-dessous :

n°1. Exécutez l’instruction SELECT.

SQL Server conserve un journal de toutes les pages suspectes dans la table suspect_pages de la base de données msdb (système), qui contient toutes les pages corrompues signalées par les requêtes SQL. Vous pouvez consulter la table suspect_pages pour voir les pages corrompues dans la base de données. Pour ce faire, vous pouvez exécuter l’instruction SELECT comme suit :

SELECT * FROM msdb..

La commande ci-dessus renvoie une grille comportant une ligne pour chaque page endommagée. Dans notre cas (voir l’image ci-dessus), vous pouvez voir que la page avec l’ID 368 est endommagée.

2. exécutez la commande DBCC CHECKDB

La commande DBCC CHECKDB vérifie l’intégrité physique et logique des objets de la base de données et des relations d’index. Vous pouvez utiliser la commande DBCC CHECKDB comme indiqué ci-dessous pour vérifier que la base de données SQL n’est pas corrompue.

DBCC CHECKDB 'nom_de_la_banque_de_données';

Si la commande ci-dessus détecte une corruption de la base de données, elle affichera les erreurs de cohérence ainsi que les options possibles pour réparer la base de données.

3. utilisez l’option CHECKSUM

Vous pouvez également utiliser l’option CHECKSUM pour détecter la corruption au niveau des pages dans les bases de données SQL lorsque l’option PAGE_VERIFY est définie sur CHECKSUM. CHECKSUM est une option de base de données qui définit le processus dans SQL Server qui vérifie la cohérence des pages lorsqu’elles sont écrites et lues sur le disque dur. Pour vérifier si la base de données SQL est corrompue au niveau de la page, exécutez la commande suivante :

SELECT name, page_verify_option_desc FROM sys.

4. exécutez la commande DBCC PAGE

La commande DBCC PAGE est une commande non documentée qui est utilisée pour reconnaître les pages endommagées dans une base de données. Pour obtenir le résultat de la commande DBCC PAGE, vous devez activer le drapeau de trace 3604. Voici la commande :

DBCC TRACEON (3604)
DBCC PAGE('Recovery_test',1,368,2) WITH 

La sortie de la commande vous permet de reconnaître le type de dommage survenu et le type de données affectées.

Solutions pour résoudre les problèmes de corruption de pages dans les bases de données SQL Server

Si vous trouvez des erreurs de niveau de page ou une corruption dans la base de données SQL après avoir vérifié la base de données à l’aide de l’une des méthodes ci-dessus, suivez les méthodes énumérées ci-dessous pour réparer la base de données et remettre les données en état.

n°1 – Remettre le niveau de la page

Vous pouvez effectuer une “restauration de page” pour ne restaurer que les pages endommagées sans remettre la base de données entière. Il s’agit d’une méthode plus rapide si vous ne devez remettre que quelques pages individuelles. La restauration de page s’applique aux bases de données qui utilisent le système de récupération complète des données ou le système de récupération en bloc des journaux. Vous pouvez remettre des pages à l’aide de SQL Server Management Studio ou de commandes T-SQL. Pour remettre des pages en état avec SSMS, procédez comme suit :

Vous pouvez également utiliser la commande T-SQL – RESTORE DATABASE (voir l’exemple suivant) pour remettre en place la page

Remarque : vous devez connaître l’ID du fichier où se trouve la page et l’ID de la page endommagée.

RESTORE DATABASE <nom_de_la_base_de_données> 
 PAGE = '<Fichier : Page> [ ,... n ] ' [ ,... n ]
 FROM <backup_device> [ ,... n ]
 AVEC 

Limites de la méthode ci-dessus :

2 – Utilisez la commande DBCC CHECKDB

Si plusieurs pages sont endommagées, vous pouvez utiliser la commande DBCC CHECKDB pour réparer la base de données SQL endommagée. Vous pouvez utiliser l’option REPAIR_ALLOW_DATA_LOSS avec cette commande.

Vous devez d’abord configurer la base de données en mode mono-utilisateur en exécutant la commande suivante :

ALTER DATABASE Dbtesting SET 

Exécutez ensuite la commande suivante pour réparer la base de données :

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

Après avoir réparé la base de données, mettez-la en mode multi-utilisateurs à l’aide de la commande suivante :

ALTER DATABASE Dbtesting SET 

Limites de la méthode ci-dessus :

3 – Utilisez un programme de réparation SQL professionnel

Si les méthodes ci-dessus échouent, vous pouvez utiliser un outil professionnel de réparation de bases de données SQL pour réparer la base de données corrompue. Stellar Repair for MS SQL est l’un de ces outils qui peut réparer la base de données SQL corrompue rapidement et sans perte de données. Il peut réparer et remettre en état tous les objets de la base de données, y compris les tables, les pages, les vues, les clés et les index, avec une précision absolue. 

Quelques fonctions importantes de Stellar Repair for MS SQL :

À la fin

Il y a plusieurs raisons qui peuvent causer une corruption au niveau de la page dans les bases de données du serveur SQL. Nous avons décrit ci-dessus comment vous pouvez reconnaître une corruption au niveau des pages dans une base de données. Si quelques pages sont corrompues, vous pouvez les remettre en état à l’aide de la méthode de restauration de page. Si plusieurs pages sont corrompues, vous pouvez utiliser la commande DBCC CHECKDB pour réparer la base de données corrompue. Toutefois, ces deux méthodes présentent certaines limites. Vous pouvez également utiliser un outil de réparation SQL professionnel tel que Stellar Repair for MS SQL. Il peut facilement réparer les fichiers de base de données SQL gravement endommagés et remettre toutes les données, y compris les pages, avec une précision absolue.

Related Post

Exit mobile version