Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

SQL Server : Ai-je des données corrompus dans ma base de données (msdb.dbo.suspect_pages) ?

Depuis SQL Server 2005 une mécanique plus poussée a été mise en place pour la détection des problèmes de corruption logique et physique.

Historiquement un mécanisme appelé « Torn Page Detection », existe dans SQL Server et est actif par défaut sur les versions d'avant 2005. Il permet d'écrire des bits particuliers dans l'en tête de chaque page (en fait de chaque bloc de 512 octets dans les pages, assimilé aux secteurs). On inverse ces bits à chaque écriture ce qui permet de vérifier que celle-ci s'est bien déroulée. Ce système à faible coût en termes de processeur, permet de détecter certains problèmes de corruption physique, mais pas de loin pas tous.

ALTER DATABASE test SET TORN_PAGE_DETECTION ON

-- ou --

ALTER DATABASE test SET PAGE_VERIFY TORN_PAGE_DETECTION

Depuis SQL Server 2005 s'est ajouté à cette fonction le « Page CheckSum » qui n'est autre qu'une somme de contrôle de toute la page, sauf l'entête. De fait la moindre modification d'un octet dans la page est reflétée lors de la vérification du CheckSum. Cette fonctionnalité est active par défaut, elle consomme légèrement plus de ressource processeur que le « Torn Page Detection », mais détecte un bien plus vaste de domaine de corruption.

ALTER DATABASE test SET PAGE_VERIFY TORN_PAGE_DETECTION CHECKSUM

En effet, à la fois les corruptions physiques, mais aussi les corruptions logiques peuvent être détectées. La corruption physique ayant lieu généralement lors des phases de lecture et d'écriture disques. Côté corruption logique celle-ci arrive plus généralement lors du traitement de la page en mémoire, cela peut être un processus qui écrit dans la zone de mémoire de SQL Server ou carrément un bug.

Ces deux système, renvoie tous deux les erreurs 823 ou 824 en cas de détection de l'une des 2 types de corruption. Le premier concerne la corruption physique (problème de lecture), le second une corruption logique (inconsistance du checksum). En complément l'erreur 832 peut aussi être levée lors de modification ultérieure en mémoire (je vous laisse lire le spécialiste du sujet : http://www.sqlskills.com/BLOGS/PAUL/post/Dont-confuse-error-823-and-error-832.aspx).

Ce qui est intéressant, c'est indépendamment du fait que vous traciez ou non les erreurs survenant sur votre serveur (ce que je ne saurais que trop vous recommander), celles-ci sont stockées dans la base de données système msdb, dans une table appelée msdb.dbo.suspect_pages.

SELECT * FROM msdb.dbo.suspect_pages

Bref, si le moindre enregistrement apparaît dans cette table, intéressez vous à la fiabilité de votre système disque.

En complément, il est possible de supprimer les vérifications de pages, en passant la commande :

ALTER DATABASE test SET PAGE_VERIFY NONE

Mais soyez vraiment sûr de votre système disque avant cela. Si vous réactivez la vérification par CheckSum, sachez de plus que les CheckSum ne seront recrées pour les pages que lorsqu'elles seront écrites ultérieurement sur le disque.

Bonne récupération…

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Publié vendredi 11 décembre 2009 09:36 par christian
Classé sous : ,

Commentaires

Pas de commentaires
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01

- Office 365: Script PowerShell pour supprimer des comptes utilisateur de collections de sites SharePoint Online par Blog Technique de Romelard Fabrice le 11-19-2018, 16:47

- Retrouvez-moi aux Microsoft experiences18 ! par Blog de Jérémy Jeanson le 11-06-2018, 22:25

- Office 365: Script PowerShell pour extraire les Teams associés à un utilisateur spécifié par Blog Technique de Romelard Fabrice le 11-06-2018, 13:37

- Office 365: Extraire les pages publiées dans un site SharePoint Online de publishing en CSV par Blog Technique de Romelard Fabrice le 11-06-2018, 11:04

- Office 365: Comment créer un jeu de Pages Modernes dans un Modern Site SharePoint Online en utilisant PowerShell depuis un fichier CSV par Blog Technique de Romelard Fabrice le 10-17-2018, 12:50

- Office 365: Comment Utiliser les Modern Pages dans un Site Intranet SharePoint basé sur le Publishing site par Blog Technique de Romelard Fabrice le 10-16-2018, 15:34

- Office 365: Comment changer le nom “Auteur” dans les pages modernes d'un Modern Site SharePoint Online par Blog Technique de Romelard Fabrice le 10-16-2018, 15:07

- Reprise des articles Codes-Sources de 2011 à 2013 par Blog de Jérémy Jeanson le 08-21-2018, 16:08

- Office 365: Modifier les jeux de couleur dans les Thèmes des pages classiques de SharePoint Online par Blog Technique de Romelard Fabrice le 08-08-2018, 17:27