Cette affirmation se produit parce que le code de restauration a lu une page de la sauvegarde, mais la page est corrompue et l'ID du fichier indiqué dans l'en-tête de la page n'existe pas dans la base de données restaurée. Elle est tirée d'un fichier de code appelé bckioreq.cpp (je possédais tous ces trucs quand j'étais chez MS).
Le message pour exécuter DBCC CHECKDB est un message générique qui ne s'applique pas dans ce cas.
Je suppose que vous restaurez une sauvegarde complète de la base de données, puis une série d'autres sauvegardes différentielles et/ou de journaux ? Vous restaurez en 2005, mais restaurez vous une sauvegarde plus ancienne ?
C'est ce qu'on appelle une assertion de détail dans le code - il n'y a absolument aucun moyen de la contourner - dès que le code la touche, l'assertion se déclenche et la restauration explose. Il y a un élément Connect pour rendre cela plus agréable mais il n'est pas non plus corrigé en 2008.
Cela se produit-il sur la sauvegarde complète que vous restaurez ou sur l'une des sauvegardes différentielles et/ou journalières ultérieures ? S'il s'agit de la sauvegarde complète, il n'y a rien à faire - cette sauvegarde est grillée. Si c'est l'une des sauvegardes ultérieures, vous pouvez tout restaurer jusqu'à cette sauvegarde, mais sans l'inclure.
C'est en gros votre réponse, j'en ai peur.
Comment cela est-il arrivé ? (question rhétorique) Il se peut que la base de données qui a été sauvegardée soit corrompue, ou que le sous-système d'E/S ait corrompu la sauvegarde. Il y a deux choses que vous pouvez faire pour vous protéger contre cela : activez les sommes de contrôle de page dans la base de données et utilisez l'option WITH CHECKSUM sur vos sauvegardes. Cela ajoute une vérification pour s'assurer que ce qui est sauvegardé n'est pas corrompu. Vous pouvez également valider vos sauvegardes de différentes manières - consultez mon article de blog à ce sujet : Importance de la validation des sauvegardes .
J'espère que cela vous aidera !
0 votes
Une question : quel service pack est installé sur votre SQL Server 2005, s'il y en a un d'installé ?
0 votes
Son SQL 2005. Pas de Service Pack. J'étais sur le point d'installer le Service Pack 1