Comment puis-je copier SQL Server 2012 de la base de données de localdb exemple?
Je suis à la recherche pour copier un SQL Server 2012 Standard de base de données pour mon localdb instance. J'ai essayé l'assistant qui se plaint de ce que localdb n'est pas un SQL Server 2005 ou plus tard, par exemple express. J'ai aussi fait une sauvegarde/restauration, mais lors de la restauration de mon localdb j'obtiens l'erreur suivante...
L'exécution de cette...
RESTORE DATABASE CSODev
FROM DISK = 'C:\MyBckDir\CSODev.bak'
WITH MOVE 'CSOdev_Data' TO 'C:\Users\cblair\CSOdev_Data.mdf',
MOVE 'CSOdev_Log' TO 'C:\Users\cblair\CSOdev_Log.ldf',
REPLACE
Message d'erreur que je reçois...
Traitées 8752 pages de base de données "CSODev', fichier 'CSOdev_Data" sur le fichier 1.
De traiter 5 pages de base de données "CSODev', fichier 'CSOdev_Log" sur le fichier 1.Msg 1853, Niveau 16, État 1, Ligne 1
La logique de base de données fichier 'CSOdev_Log' ne peut pas être trouvé. Spécifiez le chemin d'accès complet du fichier.
Msg 3167, Niveau 16, État 1, Ligne 1
La RESTAURATION n'a pas pu démarrer la base de données 'CSODev'.
Msg 3013, Niveau 16, État 1, Ligne 1
RESTAURER la BASE de données se termine anormalement.
La base de données se termine en "en Attente de Récupération" de mode. Il me semble qu'il a des problèmes avec le fichier journal. J'ai essayé les 2 sauvegardes différentes en cas on était juste corrompu.
- Peut-être essayez de placer vos fichiers dans un endroit autre que le dossier de votre profil. Qu'advient-il si vous déplacez des données et des fichiers journaux C:\Data\ par exemple?
- J'ai essayé de faire ce que et toujours le même message d'erreur.
- J'ai été en mesure de le faire avec succès - j'ai créé une base de données sur une instance normale, sauvegardé et restauré sur un localdb instance parfaitement: i.stack.imgur.com/rOOhq.png je ne suis pas sûr de ce que l'information est manquante à partir de votre question, mais il est clair que vous faites quelque chose de différent. Je ne sais pas quoi demander pour furet ça. Est-ce possible pour toute base de données ou tout simplement cette base de données spécifique?
- Êtes-vous sûr que la logique nom pour votre fichier de LOG est
CSOdev_Log
? Pouvez-vous exécuterrestore filelistonly from disk = 'C:\MyBckDir\CSODev.bak
pour voir la liste de logique fichiers de base de données dans le fichier de sauvegarde? - L'exécution de RESTAURER FILELISTONLY from DISK='C:\MyBckDir\CSODev.bak" montre...
CSOdev_Data Q:\MSSQL\CSOdev_Data.MDF D PRIMARY CSOdev_Log R:\MSSQL\CSOdev_Log.LDF L NULL
- Le réseau, le nom logique semble parfait. Rien d'intéressant dans l'erreur SQL.fichier journal? Il devrait être dans
%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\<instance-name>
, où<instance-name>
est susceptible d'êtrev11.0
.
Vous devez vous connecter pour publier un commentaire.
Il est limitation connue (un vrai bug, en fait) pour localDB. Il échouera à RESTAURER avec de DÉPLACER à chaque fois que vos fichiers de base de données sont situés dans des dossiers différents.
Vous devez restaurer dans les dossiers d'origine (pas de DÉPLACEMENT). Utilisez cmd outil comme SUBST si vous avez besoin de simuler un lecteur:/path.
J'ai eu le même problème. Finalement, ce n'travail était le suivant:
Ce qui s'est passé dans la dernière étape a été que SSDT effectué une mise à niveau des fichiers de données, qui était apparemment dans un format plus ancien. Quand ce fut fini, la base de données a commencé à travailler sans aucun problème!
J'ai eu le même problème, et après avoir fait un peu de recherche en ligne j'ai trouvé un ingénieux moyen de le faire fonctionner (quoique assez hacky). Fondamentalement, vous:
SqlLocalDb c tmp -s
).SqlCmd -E -S <localdb connection string> -Q "RESTORE DATABASE ..."
).SqlLocalDb p tmp
).SqlLocalDb d tmp
).SqlLocalDb c persistent -s
).SqlCmd -E -S <persistent connection string> -Q "Create Database <dbname> On (Filename = '<Mdf file location'), (Filename = '<Ldf Filename'>) For Attach"
.Et nous espérons que cela devrait fonctionner. Voir ici pour l'idée originale.
Edit: Ajouté Jason Brady's correction de la commande create.
Create Database <dbname> On (Filename = '<Mdf file location'), (Filename = '<Ldf Filename'>) For Attach
Essayer de script de votre base de données comme un schéma et des données, puis en exécutant le script en local.
J'ai eu le même problème. Essayez d'exécuter visual studio en tant qu'Administrateur et essayez la commande suivante
Mise à JOUR:, Cela ne fonctionne pas exactement!
Bien que la déclaration ci-dessus ne produit pas d'erreurs et se termine avec succès, la base de données reste "en ATTENTE de RÉCUPÉRATION" de l'état et ne sont pas accessibles en aucune façon. Quand j'ai essayé de RESTAURER À le RÉCUPÉRER " pour mettre la base de données en ligne j'ai eu la même erreur que dans la question ci-dessus.
Donc dans mon cas j'ai fini la restauration de la sauvegarde sur un serveur de DEV, j'ai en cours d'exécution avec MSSQL 2008 R2, puis a choisi: Tâches -> Générer des Scripts -> a choisi objets de script & Next -> cliquez sur le bouton "Avancé"- > sélectionnez "types de données de script" : Schéma & data.
Maintenant, exécutez le script généré à l'encontre de la bd locale.
Même problème, merci pour l'aide.
Mon local de base de données MS SQL 2014.
Ouvrir "SQL Server 2014 Management Studio"
Fonctionner pour moi.
Après la sauvegarde de la base de données, vous pouvez restaurer la base de données sans erreur.
Merci.
Essayez ces scripts (exemple avec adventureworks2012 que j'ai personnellement testé):
Cela fera apparaître les noms de fichiers comme:
L'utilisation de ces noms de fichiers cinstruct final de votre script comme ceci:
BTW j'exécute ces par le biais de Visual Studio (explorateur d'Objets SQL Server), mais je soupçonne fortement ce peut être exécuté sur SSMS facilement 😉