Вопрос

Запускаю sql-сервер 2005. У меня есть база данных A.Я пытаюсь восстановить резервную копию A в базу данных B.Я хочу сохранить базу данных A и создать новую базу данных тестирования B из предыдущего набора данных.

Я попытался создать B и восстановить базу данных .bak И восстановить ее в B из студии управления.

Ошибка - это...

ЗАГОЛОВОК:Управление Microsoft SQL-сервером

Студия

Восстановление не удалось для сервера '195448-app2'.(Microsoft.SqlServer.Smo)

Для получения помощи нажмите: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476

------------------------------ ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:

System.Data.SqlClient.SqlError:Набор резервного копирования содержит резервную копию базы данных, отличной от существующей базы данных «B».(Microsoft.SqlServer.Smo)

Для получения помощи нажмите: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&LinkId=20476

------------------------------ КНОПКИ:

ХОРОШО

Я нашел этот фрагмент, который не решаюсь использовать, и хочу спросить, решит ли он мою проблему изменения местоположения mdf и ldf в процессе восстановления базы данных или он полностью заменит элементы базы данных A.

ALTER DATABASE AdventureWorks
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
RESTORE DATABASE AdventureWorks
FROM DISK = 'C\:BackupAdventureworks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'C:\Data\datafile.mdf',
MOVE 'AdventureWorks_Log' TO 'C:\Data\logfile.ldf',
REPLACE

[http://blog.sqlauthority.com/2007/04/30/sql-server-fix-error-msg-3159-level-16-state-1-line-1-msg-3013-level-16-state- 1-строка-1/][1]

и для себя я бы это сделал...

RESTORE DATABASE B
FROM DISK = 'C:\backupofA.bak'
WITH    
MOVE 'B' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B.mdf',
MOVE 'B_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B_log.ldf',
REPLACE

Чего я не знаю, так это того, повлияет ли это вообще на базу данных А.Я надеюсь, что замена относится к файлам, связанным с B.

или если это должно быть

RESTORE DATABASE B
FROM DISK = 'C:\backupofA.bak'
WITH    
MOVE 'A' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B.mdf',
MOVE 'A_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B_log.ldf',
REPLACE

Если бы кто-нибудь мог помочь мне с ошибкой и/или подтвердить это исправление, я был бы очень благодарен, поскольку я играю не с моей базой данных.

Спасибо.

Это было полезно?

Решение

Вы можете просто использовать Мастер копирования базы данных.Если вы хотите сделать это как профессионалы и использовать T-SQL, RESTORE ..ДВИГАТЬСЯ ...REPLACE сделает то, что вы ожидали:переместите два файла в нужные места и замените базу данных B содержимым из резервной копии.A не будет затронуто.

Другие советы

На вашем месте я бы воспользовался мастером:В Sql Server Management Studio щелкните правой кнопкой мыши «Базы данных» и выберите «Восстановить базу данных...».Этот диалог/мастер сделает именно то, что вы просите — просто выберите исходный файл(ы) / базу данных .bak, из которого вы хотите восстановить, введите имя базы данных, в которую вы хотите восстановить, и нажмите «ОК».

Некоторые примечания: если вы введете имя базы данных, которая еще не существует (похоже, это то, что вы хотите сделать), она создаст эту базу данных для вас.Если вы введете имя существующей базы данных, будет предпринята попытка восстановления в эту базу данных.Если вы попытаетесь восстановить существующую базу данных из резервной копии, сделанной из другой базы данных, это не удастся, однако вы можете заставить сервер Sql перезаписать существующую базу данных, перейдя в «Параметры» и установив флажок «Перезаписать существующую базу данных».

Кроме того, если вы восстанавливаете резервную копию существующей базы данных для создания новой второй копии этой базы данных, вы можете обнаружить, что мастер не работает, пытаясь создать базу данных, используя те же пути к файлам базы данных, которые в настоящее время используются источником. база данных.Чтобы это исправить, вам нужно нажать «Параметры» и изменить все пути к файлам «Восстановить как» на файлы, которые еще не существуют.

Вы также можете заставить этот мастер генерировать сценарий SQL вместо фактического выполнения фактического восстановления (нажмите кнопку «сценарий» вверху), что удобно, если вы хотите вместо этого научиться делать подобные вещи на чистом SQL.

Возможно восстановление базы данных с sql server 7, sql server 2000 на sql server 2005.Этого можно добиться с помощью команды восстановления и замены.

use master 

restore database mydatabase from disk ='c:\mybackup.bak' with replace 

С помощью этого скрипта легко создать резервную копию на сервере sql без каких-либо внешних инструментов.

Проверить Восстановление с примером.

сначала удалите базу данных b.потом делай восстановление.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top