Créer/restaurer la base de données de sauvegarde SQL Server Express
Je n'ai pas SQL Server Management Studio sur ma machine.
j'ai une sauvegarde de base de données (SQL Server 2008 R2). Il y a SQL Server Express qui est installé avec Visual studio 2010 ultimate installé sur ma machine.
Comment puis-je restaurer cette sauvegarde sur une base de données et l'attacher à SQL Server Express?
y a-t-il une solution sans utiliser SQL Managment Studio Express ?
5 réponses
même avec SQL Server Management Studio Express, vous ne pourrez pas restaurer cette sauvegarde. L'édition Express installée avec Visual Studio 2010 est la version 2008 de SQL Server - votre sauvegarde à partir d'un Serveur SQL server 2008 R2 libération de ces sauvegardes ne peut pas restaurer sur une version de 2008.
Vous aurez besoin de télécharger le SQL Server 2008 R2 Express version, et pendant que vous y êtes, obtenir la version avec le Management Studio! Installez ceci, et ensuite vous serez en mesure de restaurer votre sauvegarde de base de données.
si vous voulez vraiment restaurer votre base de données sans utiliser Mgmt Studio - vous pouvez bien sûr utiliser un RESTORE
instruction dans T-SQL et exécutez ceci en utilisant le sqlcmd
outil en ligne de commande:
RESTORE DATABASE YourDatabaseName
FROM DISK = N'(path to your BAK file)'
WITH FILE = 1,
MOVE N'(your DB name)' TO N'(your SQL path)database.MDF',
MOVE N'(your DB name)_LOG' TO N'(your SQL path)database_LOG.LDF',
NOUNLOAD,
REPLACE,
STATS = 10
GO
(et bien sûr, il y a aussi un BACKUP
commande que vous pouvez utiliser dans un mode similaire - livres MSDN En ligne sont vos amis pour plus de détails sur la syntaxe!!).
en retard mais peut-être utile à d'autres qui voient cela....
si le problème est la restauration sans Management studio cela peut être facilement résolu en utilisant sqlcmd comme marc_s l'a déjà souligné.
cependant si le vrai problème est de restaurer la sauvegarde 2008 R2 sur SQL 2008 sans utiliser SSMS, alors seule la solution utilise des outils tiers qui peuvent lire la sauvegarde et générer des scripts pour créer des schémas et insérer des données.
L'idée est de créer une base de données vide sur SQL 2008 et utiliser un outil tiers pour le comparer à la sauvegarde générée avec 2008 R2.
j'ai utilisé ApexSQL Diff et ApexSQL Data Diff avec un bon succès dans mon travail précédent mais il ya aussi de bons outils de Porte Rouge (SQL Compare) et Idera (ensemble D'outils de comparaison). Si vous regardez en ligne, vous trouverez probablement beaucoup plus....
avertissement: Je ne suis affilié à aucune des compagnies mentionnées ci-dessus...
pourquoi ne pas avoir SQL Managment Studio Express? Il est gratuit, et devrait vous permettre d'administrer locale de sql express.
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796
BACKUP DATABASE [AdventureWorks] TO
DISK = N'\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak'
WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
RESTORE DATABASE [AdventureWorksNew]
FROM DISK = N'\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak'
WITH FILE = 1,
MOVE N'AdventureWorks_Data' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Data.mdf',
MOVE N'AdventureWorks_Log' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Log.ldf',
NOUNLOAD, STATS = 10
http://codeonaboat.wordpress.com/2012/02/16/sql-server-2008-creating-a-database-from-a-bak-file/
dans SSMS, ouvrez une fenêtre de requête dans la base de données principale du serveur de base de données. C'est là que vous exécuterez les requêtes suivantes.
voir ce que le" LogicalName " de la base de données qui a été sauvegardé dans le .bak fichier est
RESTORE FILELISTONLY FROM DISK = "c:\DatabaseBackups\dev2012021601.bak'
Cela vous donnera le nom logique de la base de données et de son fichier journal. Supposons que les noms sont "dbname" et "dbname_log"
- exécutez maintenant la commande de restauration suivante. Assurez-vous qu'une base de données avec le nom que vous essayez de créer n'existe pas déjà (dans l'exemple de code ci-dessous, dbForSocialMigration n'existe pas).
RESTORE DATABASE dbForSocialMigration FROM DISK = 'c:\DatabaseBackups\dev20120307.bak' WITH MOVE 'dbname' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration.mdf', MOVE 'dbname_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration_log.mdf'
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
est le répertoire où SQL Express conserve habituellement ses fichiers de données. Vous pouvez trouver le répertoire que votre serveur de base de données utilise en sélectionnant une base de données à partir de celui-ci, en faisant un clic droit et en ouvrant le dialogue Propriétés et sélection de L'option" fichiers " à gauche.
cela devrait fonctionner, et à ce point vous devriez être en mesure d'accéder à la base de données "dbForSocialMigration" peuplée avec toutes les tables et les données de la .bak fichier.
la sauvegarde est similaire. Voici restaurer en utilisant la gestion Studio Express: http://www.serverintellect.com/support/sqlserver/restore-database-ssmse.aspx