Создание новой базы данных из резервной копии другой базы данных на том же сервере?


Я пытаюсь создать новую базу данных из старой резервной копии базы данных на одном сервере. При использовании среда SQL server management studio и при попытке восстановить новую БД из резервной копии я получаю эту ошибку

System.Data.SqlClient.SqlError: The backup set holds a backup of a database 
other than the existing 'test' database. (Microsoft.SqlServer.Smo)

после погуглить я нашел этот кусок кода

    RESTORE DATABASE myDB

 FROM DISK = 'C:myDB.bak'

 WITH MOVE 'myDB_Data' TO 'C:DATAmyDB.mdf',

MOVE 'myDB_Log' TO 'C:DATAmyDB_log.mdf'
GO

мне было интересно, будут ли операторы перемещения связываться с базой данных, из которой была создана резервная копия на этом сервере?

спасибо, все Помощь ценится.

4 54

4 ответа:

Я думаю, что это проще, чем это.

  • сначала создайте пустую целевую базу данных.
  • затем в Мастере восстановления "SQL Server Management Studio" найдите параметр для перезаписи целевой базы данных. Он находится на вкладке "Параметры" и называется 'перезаписать существующую базу данных (с заменой)'. Это проверить.
  • не забудьте выбрать целевые файлы на странице "файлы".

вы можете изменить 'вкладки' в левой части мастера (Общие Сведения, Файлы, Параметры)

его даже можно восстановить без создания пустой базы данных на всех.

в среде SQL Server Management Studio щелкните правой кнопкой мыши на базы данных и выберите Восстановить Базу Данных... enter image description here

в диалоговом окне восстановление базы данных, выберите базу данных-источник или устройство как обычно. После выбора исходной базы данных SSMS заполнит имя целевой базы данных на основе исходного имени базы данных.

затем можно изменить имя базы данных и введите новое имя целевой базы данных.

enter image description here

при таком подходе вам даже не нужно переходить на вкладку Параметры и нажимать опцию "перезаписать существующую базу данных".

кроме того, файлы базы данных будут называться в соответствии с вашим новым именем базы данных, и у вас все еще есть возможность изменить имена файлов, если вы хотите.

проверка параметров над базой данных записи работала для меня:)

enter image description here

думайте об этом как об архиве. Базы данных mydb.Бак содержит базы данных mydb.МДФ и базы данных mydb.ЛДФ.

восстановление с перемещением, чтобы сказать, что HerDB в основном захватывает MyDB.МДФ (MDF и LDF) из резервной копии, и копии их HerDB.МДФ и ЛДФ.

поэтому, если у вас уже был MyDb на экземпляре сервера, который вы восстанавливаете, он не будет затронут.