1 votes

La restauration de la base de données SQL 2008 échoue avec une erreur à la page xxx:xxx

Voici la situation :

J'ai une sauvegarde complète (fichier .bak) d'une base de données SQL 2008, avec des partitions. Le fichier .bak fait 100 Go.

Je dois restaurer cette base de données sur un serveur différent, vers une nouvelle base de données. La commande est la suivante :

Restore Database [newname] FROM DISK= N'D:\mydatabase.bak' WITH FILE = 1
MOVE 'mydatabasename' TO 'C:\mydatabase.mdf'
MOVE 'Partition1' TO 'C:\`mydatabase_1.ndf'etc..
STATS = 1

Après 52 % de traitement, j'obtiens cette erreur :

Msg 3183, Level 16, State 2, Line 1
RESTORE detected an error on page (8481:555819297) in database "dbname" as read from the backup set.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Avant que toutes les suggestions par défaut ne surgissent, voici ce que j'ai déjà fait :

  • Checkdb sur la base de données originale --> aucune erreur
  • Je restaure le fichier .bak sur ma machine locale --> aucune erreur, donc la sauvegarde est correcte.

Que puis-je faire pour résoudre ce problème ? Comment puis-je trouver le problème réel ?

Merci pour toute suggestion.

J'ai également demandé sur stackoverflow, mais ils ont suggéré de le faire sur serverfault : Lien vers stackoverflow

1voto

Randy Points 3196

Il est inhabituel d'obtenir une erreur de lecture dans un fichier que vous ne pouvez pas reproduire sur un autre matériel, à moins que le système de disque/stockage sous-jacent du serveur défaillant ne connaisse des problèmes.

Si vous avez exécuté la restauration deux fois sur le serveur, je suppose qu'elle a échoué les deux fois. L'erreur s'est-elle produite sur la même page ? Si ce n'est pas le cas, je soupçonnerais un problème matériel avec le disque et j'utiliserais Performance Monitor pour examiner les valeurs physiques de sec/transfert du disque. Si l'erreur s'est produite à la même page, alors je soupçonne ce fichier. La copie sur votre ordinateur local provient-elle de celle qui échoue sur le serveur, ou d'une autre source ? Peut-être que le fichier .bak a été corrompu lors de sa copie de cette source vers le serveur.

Il serait préférable d'obtenir une autre copie du fichier de sauvegarde, si possible. Si ce n'est pas possible, je lancerais un checkdb sur la base de données que vous avez réussi (apparemment) à restaurer proprement. Si elle est propre, j'envisagerais de détacher la base de données de ma machine locale, de copier toutes les données et les fichiers journaux sur le serveur et de rattacher la base de données. Et ensuite faire un autre checkdb.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X