J'ai une base de données SQL Server 2012 avec filestream activé. Cependant, lorsque je le sauvegarde et que je tente de le restaurer sur une autre instance de SQL Server 2012 (sur un autre ordinateur), je reçois simplement le message suivant:
Aucun jeu de sauvegarde sélectionné pour être restauré.
Pas même une seule ligne d'explication supplémentaire. Quel est le problème ici?
Toute autre base de données sans filestream est OK et peut être restaurée avec succès. Est-ce quelque chose lié à filestream? Devrais-je installer un correctif ou quelque chose comme ça.
J'ai eu ce problème et il s'est avéré que j'essayais de restaurer la mauvaise version de SQL. Si vous souhaitez plus d'informations sur ce qui se passe, essayez de restaurer la base de données à l'aide du code SQL suivant:
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
Cela devrait vous donner le message d'erreur que vous devez déboguer.
Mon problème a fini par être permissions . Je suis sur une machine de développement et copié via Homegroup. D'une manière ou d'une autre, probablement en fonction de l'endroit où j'ai copié le fichier, les autorisations ont été gâchées et Management Studio n'a pas pu lire le fichier. Puisqu'il s'agit de dev, j'ai juste donné à tout le monde les autorisations au fichier bak et j'ai ensuite pu restaurer avec succès via l'interface graphique.
En cours d'exécution:
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
Cela m'a donné l'erreur suivante:
La famille de supports sur le périphérique 'C:\NorthwindDB.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) Blockquote
Il s'avère que vous ne pouvez pas passer d'une base de données d'une version SQL supérieure à une version inférieure, même si le niveau de compatibilité est identique pour les bases de données source et cible. Pour vérifier la version de SQL, exécutez:
Select @@Version
Pour voir la différence, créez simplement une base de données sur votre serveur SQL source et essayez de restaurer votre fichier de sauvegarde. Lorsque vous effectuez cette opération avec SSMS, une fois que vous avez sélectionné le fichier de sauvegarde, il affiche des informations à ce sujet: opossed à lorsque vous l'ouvrez depuis un serveur de version inférieure qui indiquera simplement "aucun jeu de sauvegarde sélectionné pour être restauré"
So si vous devez toujours déplacer vos données vers une version SQL inférieure, cochez This .
Exécutez SQL Server Management Studio en tant qu'administrateur (cliquez avec le bouton droit de la souris sur> Exécuter en tant qu'administrateur), puis essayez de restaurer.
Je pensais que je n'étais pas assez stupide pour confondre les versions. Cependant, je ne savais pas que sur mon nouveau serveur, une instance de SQL Server 2005 était déjà installée depuis sa naissance et s'appelaitSQLEXPRESS
. Lors de la tentative de restauration de la base de données sauvegardée dans SQLMS 2008 R2 dans SSMS 2012 surSQLEXPRESS
instance, la liste des jeux de sauvegarde était vide.
Finalement, j'ai réalisé que l'instanceSQLEXPRESS
sur le serveur n'était pas une instance de 2012, mais une 2005. Je me suis déconnecté et connecté à l'instance real 2012 (dans mon cas, nomméSQLEXPRESS2012
), et cela a (évidemment) fonctionné.
Mon problème était que mon utilisateur appartenait au groupe Administrateurs intégrés et qu'aucun utilisateur avec le rôle Sysadmin-role sur SQL Server ..__ Je venais de démarrer Management Studio en tant qu'administrateur. De cette façon, il était possible de restaurer la base de données.
Désolé mais je viens de m'inscrire et je ne peux pas ajouter de commentaire alors copiez simplement la réponse de Tyler Forsythe ici, c'est exactement ce qui a fonctionné pour moi.
"Mon problème a fini par être des autorisations. Je suis sur une machine de développement et copié via le groupe résidentiel. D'une manière ou d'une autre, probablement en fonction du lieu où j'ai copié le fichier, les autorisations ont été gâchées et Management Studio n'a pas pu lire le fichier. dev j'ai juste donné à tout le monde les autorisations sur le fichier bak et pouvais ensuite restaurer avec succès via l'interface graphique. " Tyler Forsythe
Et pour clarifier, je suis en train de restaurer une sauvegarde d'une instance de 2008 à 2012, de différentes machines (production/développement local). La sauvegarde est une sauvegarde automatique, je n'avais pas besoin de la créer manuellement pour que ce processus fonctionne. Modifiez simplement les autorisations (tout le monde est le plus facile pour un ordinateur de développement local) et SSMS peut désormais lire le fichier de sauvegarde correctement et le restaurer sur mon ordinateur de développement local.
FYI: J'ai constaté que lors de la restauration, je devais utiliser les mêmes informations d'identification (utilisateur SQL) pour me connecter à SSMS. J'avais d'abord essayé la restauration en utilisant un compte d'authentification Windows.
Pour moi, le problème était que le fichier .BAK se trouve dans un dossier chiffré sur le serveur. Même avec tous les droits d’administrateur, SSMS n’a jamais pu lire le fichier. Déplacer le .BAK dans un dossier non chiffré a résolu mon problème. Notez qu'après le déplacement du fichier, vous devrez peut-être également modifier les propriétés du fichier pour supprimer le cryptage (clic droit, propriétés, avancé, décocher "crypter le contenu pour sécuriser les données".
Pour moi, c’est un problème de privilège d’utilisateur… .. Je me suis connecté avec son utilisateur et cela fonctionne bien.
Dans mon cas (nouvelle installation du serveur SQL, utilisateur nouvellement créé), mon utilisateur ne disposait tout simplement pas des autorisations nécessaires. Je me suis connecté à Management Studio en tant que sa , puis je suis allé dans Sécurité/Connexions, cliquez avec le bouton droit sur mon nom d’utilisateur, Propriétés, puis dans la section Rôles du serveur, j’ai coché sysadmin
.
J'ai eu le même problème avec SQL Server 2014 (Management Studio n'a pas pu voir le dossier dans lequel le fichier de sauvegarde résidait, lors d'une tentative de localisation pour une opération de restauration). Ce fil détenait la réponse qui a résolu mon problème. Citation:
Le compte de service SQL Server est disponible dans Démarrer-> Contrôle Panel-> Outils d'administration-> Services. Double-cliquez sur le serveur SQL service-> onglet Connexion. Vous utiliserez soit le "compte système local" ou "Ce compte" pour définir un compte spécifique. Si vous utilisez le Compte système local, vous ne pourrez pas référencer les sauvegardes qui sont pas local sur le serveur. Si, à la place, vous avez défini le compte sur utiliser, c’est le compte qui doit avoir accès au fichier de sauvegarde emplacement. Votre capacité à accéder aux sauvegardes en utilisant votre connexion personnelle est hors de propos; c'est le compte SQL Server qui est utilisé, même si vous lancez la sauvegarde. Votre personnel informatique devrait être capable de déterminer quels droits sont accordés à chaque compte.
J'espère que ça aide quelqu'un.
Pour moi, c'était parce que le fichier de sauvegarde était toujours ouvert par un autre processus. Voici le journal des événements:
BackupDiskFile :: OpenMedia: Le périphérique de sauvegarde 'X:\Backups\MyDatabase\MyDatabase_backup_2014_08_22_132234_8270986.bak' n'a pas été ouvert. Erreur de système d'exploitation 32 (le processus ne peut pas accéder au fichier car il est utilisé par un autre processus.).
Fermer et rouvrir simplement Sql Server Management Studio a résolu le problème (il est donc évident que c’est ssms.exe qui a le descripteur ..)
Une autre raison potentielle de ce problème semble être Google Drive. Google Drive compresse des fichiers bak ou quelque chose de ce genre. Si vous souhaitez transférer une sauvegarde de base de données via Google Drive, vous devez le compresser au préalable.
Pour moi, c'était un problème de permission. J'ai installé SQL Server à l'aide d'un compte d'utilisateur local et avant de rejoindre le domaine de mon entreprise. Plus tard, j'ai essayé de restaurer une base de données à l'aide de mon compte de domaine qui ne dispose pas des autorisations nécessaires pour restaurer les bases de données SQL Server. Vous devez corriger l'autorisation de votre compte de domaine et lui donner l'autorisation de l'administrateur système sur votre instance de serveur SQL.
J'ai le même message d'erreur même si je sauvegarde et restaure sur le même ordinateur.
Le problème venait de là: lors de la sauvegarde, j'avais 2 éléments dans la boîte de destination.
Donc, le correctif serait: assurez-vous que seulement 1 élément dans la case «destination». Supprimez tous les autres s'il y en a.
Dans mon cas, il s'agissait d'un problème d'autorisations.
Pour l'utilisateur Windows, j'utilisais n'avait pas le rôle dbcreator
.
J'ai donc suivi les étapes ci-dessous
sa
au serveur SQLSecurity
dans l'Explorateur d'objetsLogins
Server Roles
parmi les options Select a page
dbcreator
pour l'utilisateur Si vous souhaitez remplacer complètement la base de données existante, utilisez l’option WITH REPLACE :
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE
Utilisation de SQL Server 2012 Express.
Mon erreur (de SQL Manager - Dialogue de restauration de la base de données):
No backupset selected to be restored
En outre, il n'y avait aucun jeu de sauvegarde indiqué dans la liste.
Le problème était que j'avais déplacé l'un des 5 fichiers de sauvegarde dans un dossier où l'utilisateur de connexion au service SQL Server n'avait pas les autorisations. J'ai essayé d'ajouter cet utilisateur, mais je n'ai pas pu obtenir l'utilisateur NT Service\MSSQL $ SQLEXPRESS dans la sécurité. liste.
J'ai déplacé le fichier sous le dossier Documents de l'utilisateur du service, ce qui lui a permis de lire tous les fichiers que j'avais sélectionnés - 4 à ce moment-là - et l'erreur est devenue "jeu de supports manquant" - puis j'ai cherché un autre fichier de sauvegarde. et quand j’ai ajouté que j’ai pu restaurer.
Les réponses à cette question m'ont aidé à chercher les bons endroits et à trouver une solution.
Je pense que je reçois le prix pour la raison la plus entêtée d’avoir cette erreur. Dans la boîte de dialogue Restaurer la base de données, la liste déroulante de la base de données sous Source est grisée et je pensais qu'elle était désactivée. J'ai sauté dans le menu déroulant de la base de données sous Destination pensant que c'était la source et fait une sélection. Cela entraînera l'affichage de ce message d'erreur.
J'ai rencontré le même problème. Exécutez SSMS en tant qu'administrateur, puis cliquez avec le bouton droit de la souris et effectuez la restauration de la base de données. Devrait marcher.