web-dev-qa-db-fra.com

Restore DB - Error RESTORE HEADERONLY se termine anormalement. 

J'ai sauvegardé SQL Server 2008 DB sur le serveur et les ai téléchargées dans un environnement local.

J'essaie de restaurer cette base de données et continue de me donner l'erreur suivante.


Une exception s'est produite lors de l'exécution de une instruction ou un lot Transact-SQL . (Microsoft.SqlServer.ConnectionInfo)

------------------------------ INFORMATION ADDITIONNELLE:

La famille de médias sur l'appareil 'C:\go4sharepoint_1384_8481.bak' est mal formé. SQL Server ne peut pas traiter cette famille de médias. RESTAURER HEADERONLY se termine anormalement . (Microsoft SQL Server, erreur: 3241)

Pour obtenir de l'aide, cliquez sur: http://go.Microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.4053&EvtSrc=MSSQLServer&EvtID=3241&LinkId=20476

J'ai essayé de créer une base de données temporaire sur le serveur et j'ai essayé de restaurer le même fichier de sauvegarde, ce qui fonctionne. J'ai aussi essayé non. de fois le téléchargement du fichier du serveur au PC local en utilisant différentes options sur Filezila (Auto, Binaire)

Mais ça ne marche pas. Après cela, j'ai essayé d'exécuter la commande suivante sur le serveur.

BACKUP DATABASE go4sharepoint_1384_8481 
TO DISK=' C:\HostingSpaces\dbname_jun14_2010_new.bak' with FORMAT

Cela me donne l'erreur suivante:

Msg 3201, Niveau 16, État 1, Ligne 1 Impossible d'ouvrir le périphérique de sauvegarde 'c:\Program Files\Microsoft SQL Serveur\MSSQL10.SQLEXPRESS\MSSQL\Backup\ C:\HostingSpaces\dbname_jun14_2010_new.bak '. Erreur du système d'exploitation 123 (Le syntaxe du nom de fichier, du nom de répertoire ou du libellé de volume est Incorrect.). Msg 3013, niveau 16, état 1, ligne 1 BACKUP DATABASE est se terminant anormalement.

Après des recherches, j'ai trouvé les 2 liens utiles suivants: 

  1. http://support.Microsoft.com/kb/290787
  2. http://social.msdn.Microsoft.com/Forums/en-US/sqlsetupandupgrade/thread/4d5836f6-be65-47a1-ad5d-c81caaf1044f

Mais je ne suis toujours pas en mesure de restaurer correctement la base de données.

Toute aide serait très appréciée. Merci.

31
Jordon Willis

Vous pouvez consulter ce blog. Cela avait résolu mon problème.

http://dotnetguts.blogspot.com/2010/06/restore-failed-for-server-restore.html

Sélectionnez @@ Version 
Il m'avait donné la sortie suivante de Microsoft SQL Server 2005 - 9.00.4053.00 (Intel X86) 26 mai 2009 14:24:20 Copyright (c) 1988-2005 Microsoft Corporation Express Edition sous Windows NT 6.0 (Build 6002: Service Pack 2)

Vous devrez effectuer une nouvelle installation sur une nouvelle instance nommée pour vous assurer que vous utilisez la nouvelle version de SQL Server.

24
Jordon Willis

Ce type d'erreur survient lorsque vous essayez de télécharger des données de sauvegarde d'une version supérieure vers une version inférieure. Comme vous avez une sauvegarde de SQL Server 2008 et que vous essayez de télécharger des données dans SQL Server 2005, vous obtiendrez ce genre d'erreur. S'il vous plaît essayez de télécharger dans une version supérieure. 

7
Deepak

J'ai rencontré ce problème et mon problème était un peu plus complexe ... À l'origine, j'essayais de restaurer une sauvegarde SQL Server 2000 vers SQL Server 2012. Bien sûr, cela n'a pas fonctionné car SQL Server 2012 ne prend en charge que les sauvegardes de 2005 et plus.

J'ai donc restauré la base de données sur une machine SQL Server 2008. Une fois cela fait - j'ai copié la base de données pour la restaurer sur SQL Server 2012 - et cela a échoué avec l'erreur suivante

La famille de supports sur le périphérique 'C:\XXXXXXXXXXX.bak' est mal formée. SQL Server ne peut pas traiter cette famille de supports. RESTORE HEADERONLY se termine anormalement. (Microsoft SQL Server, erreur: 3241)

Après de nombreuses recherches, j'ai découvert que j'avais sauté une étape. Je devais revenir à la machine SQL Server 2008 et cliquer avec le bouton droit de la souris sur la base de données (que je voulais sauvegarder)> Propriétés> Options> Vérifier que le niveau de compatibilité est défini sur SQL Server 2008.> Enregistrer 

Et ensuite, recréez la sauvegarde - Après cela, j'ai été capable de restaurer vers SQL Server 2012.

2
user2566365

Cette erreur peut être causée par les autorisations sur le fichier, que vous devriez vérifier. Cependant, j'ai remarqué récemment que la même chose se produisait si le fichier avait été transféré et que Windows l'avait marqué comme "Crypter le contenu des données sécurisées".

Vous pouvez le trouver en affichant les propriétés du fichier .bak et en cliquant sur le bouton Avancé, il apparaît comme la dernière case à cocher de la boîte de dialogue.

J'espère que ça aide quelqu'un!

2
MonsCamus

Dans mon cas, le fichier de sauvegarde était compressé, mais son extension ne l'indiquait pas et ne finissait pas par .Zip, .tgz, etc. Une fois que j'ai décompressé mon fichier de sauvegarde, j'ai pu l'importer. 

0
thebiggestlebowski

J'ai eu un problème similaire mais j'essayais de restaurer la version la plus basse vers la version la plus récente (correct). Le problème était cependant dans les droits insuffisants. Lorsque je me suis connecté avec "Authentification Windows", j'ai pu restaurer la base de données.

0
okkko

Ma conjecture est que vous essayez de restaurer dans des versions inférieures qui ne fonctionneront pas

0
Madhivanan

Je pense que vous avez 2 problèmes distincts, 1. avec la restauration et 2. avec la création

Pour 1. vous pouvez essayer de vérifier si le fichier a été transféré correctement (une méthode simple consisterait à vérifier le md5 du fichier sur le serveur et à nouveau sur l’environnement local pour voir s’ils correspondent).

0
potatopeelings
Cannot open backup device 'c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\ C:\HostingSpaces\dbname_jun14_2010_new.bak'

L'erreur est assez explicite. Le fichier C:\program files\...\Backup \c:\Hosting...\ n'est pas correctement formaté. Ceci est assez évident si vous inspectez le nom du fichier. Peut-être oublier l'espace supplémentaire dans votre relevé de sauvegarde?

BACKUP DATABASE go4sharepoint_1384_8481 
TO DISK='C:\HostingSpaces\dbname_jun14_2010_new.bak' with FORMAT

Remarque il n'y a pas d'espace entre ' et C:

0
Remus Rusanu