Создание / восстановление базы данных из резервной копии SQL Server Express
На моей машине нет среды SQL Server Management Studio.
У меня есть резервная копия базы данных (SQL Server 2008 R2). Существует SQL Server Express, который установлен вместе с Visual studio 2010 ultimate, установленной на моей машине.
Как восстановить эту резервную копию в базе данных и присоединить ее к SQL Server Express?
Есть ли какое-либо решение wihout с помощью SQL Management Studio Express ?
5 ответов:
Даже с помощью SQL Server Management Studio Express вы не сможете восстановить эту резервную копию. Версия Express edition, устанавливаемая с Visual Studio 2010, является версией 2008 SQL Server - ваша резервная копия является одной из версий SQL Server 2008 R2 - эти резервные копии не могут быть восстановлены на версию 2008.
Вам нужно будет скачать SQL Server 2008R2 Express version , и пока вы это делаете-получите версию со студией управления! Установите его, и тогда вы сможете восстановить резервную копию базы данных.
Если вы действительно хотите восстановить свою базу данных без использования Mgmt Studio - вы можете, конечно, использовать оператор
RESTORE
в T-SQL и выполнить это с помощьюsqlcmd
инструмент командной строки :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
(и, конечно же, есть еще
BACKUP
команда , которую вы можете использовать аналогичным образом- MSDN Books Online ваш друг для получения подробной информации о синтаксисе!!).
Поздний, но, надеюсь, полезный для других, кто просматривает это....
Если проблема заключается в восстановлении без management studio, это можно легко решить с помощью sqlcmd, как уже указывал marc_s.
Однако если реальная проблема заключается в восстановлении резервной копии 2008 R2 на SQL 2008 без использования SSMS, то единственным решением является использование сторонних средств, которые могут считывать резервные копии и генерировать сценарии для создания схемы и вставки данных.
Идея состоит в том, чтобы создать пустую базу данных на SQL 2008 и использовать сторонний инструмент для сравнения его с резервной копией, созданной с 2008 R2.
Я использовал ApexSQL Diff и ApexSQL Data Diff с хорошим успехом в моей предыдущей работе, но есть также хорошие инструменты из Red Gate (SQL Compare) и Idera (Comparation toolset). Если вы посмотрите в интернете, вы, вероятно, найдете гораздо больше....
Отказ от ответственности: я не связан ни с одной из компаний, упомянутых выше ...
Почему бы вам не получить SQL Management Studio Express? Она бесплатна и должна позволять администрировать локальные экземпляры 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
Следующая ссылка предоставляет аналогичное решение, как marc_s, и оно идет еще глубже. Я смог успешно создать новую БД из файла резервной копии с помощью решения, представленного в ссылке ниже.
Http://codeonaboat.wordpress.com/2012/02/16/sql-server-2008-creating-a-database-from-a-bak-file/
Решение ниже скопировано из приведенной выше ссылки:
В SSMS откройте окно запроса в главной базе данных сервера баз данных. Вот где вы будете управлять следующие запросы.
Смотрите, что такое "LogicalName" базы данных, которая была скопирована в .файл bak - это
ВОССТАНОВЛЕНИЕ FILELISTONLY С ДИСКА = 'c:\DatabaseBackups\dev2012021601.бак '
Это даст вам логическое имя базы данных и связанного с ней файла журнала. Предположим, что имена являются "dbname " и "dbname_log "
- теперь выполните следующую команду восстановления. Убедитесь, что база данных с именем, которое вы пытаетесь создать, еще не существует (в приведенном ниже примере кода dbForSocialMigration не существует).
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
это каталог, в котором SQL Express обычно хранит свои файлы данных. Вы можете найти каталог, используемый сервером баз данных, выбрав из него базу данных, щелкнув правой кнопкой мыши и открыв диалоговое окно свойств и выбрав опцию "файлы" слева.Это должно сработать, и в этот момент Вы должны быть в состоянии для доступа к базе данных "dbForSocialMigration" заполняются все таблицы и данные из нее .файл бака.
Резервное копирование аналогично. Вот восстановление с помощью Management Studio Express: http://www.serverintellect.com/support/sqlserver/restore-database-ssmse.aspx