Corruption sur des pages systèmes (PFS, GAM, SGAM, DIFF MAP, ML MAP)
Bonjour,
Il y a de la corruption sur une base de données de plusieurs tera, en checkant la table "suspect_pages", j'ai pu constater qu'il s'agissait de page système :
• 106 pages PFS :
• 6 pages GAM
• 6 pages SGAM
• 6 pages DIFF MAP
• 6 pages ML MAP
Elles ont toutes l'ID 1, qui correspond à cela d'après la doc Microsoft : Erreur 823 provoquée par une erreur CRC du système d'exploitation ou erreur 824 autre qu'une somme de contrôle incorrecte ou une page endommagée (par exemple, ID de page incorrect)
Nous avons restauré un backup de la base sur un autre environnement et sur ce dernier, il n'y avait plus de problème avec les pages. J'ai lancé un DBCC CHECKDB pour valider, il ne semblait plus y avoir une seule page corrompu, pourtant le backup utilisé est un backup qui a été fait alors que le problème était déjà présent sur la base source.
J'ai recherché un peu sur internet, mais je n'ai pas trouvé comment une restauration peut corriger ce problème, auriez-vous une explication ?
Je me dis que lors de la restauration, SQL Server refait les entête des pages et donc elles pointent vers les bons endroits (par exemple)
Je ne suis pas sur de cette explications, donc je viens vers vous :)
D'ailleurs, lorsque l'on a ce genre de corruption, je ne sais pas s'il y a d'autres solutions que la restauration ? Un emptyfile par exemple, pour que les entêtes des pages soient recrées ?
Si la restauration corrige le problème, il y a peut-être une commande qui permet de corriger cela sans faire de restauration ?
Un DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS par exemple, mais aucune données serait perdues car seulement les entêtes des pages systèmes seraient reconstruit ?
Par avance, je vous remercie pour vos réponses :)
Cordialement,
Donovan