Подтвердить что ты не робот

Восстановление базы данных с переходом

Я пытаюсь восстановить резервную копию базы данных, но получаю ошибку:

Сбой восстановления для сервера "ASIF-VAIO". (Microsoft.SqlServer.SmoExtended)

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

System.Data.SqlClient.SqlError: Файл 'C:\Program Files\Microsoft SQL Сервер \MSSQL10_50.MSSQLSERVER\MSSQL\DATA\uwa.mdf 'испрашивается "Aston_Fresh_log" (2) и "Aston_Fresh" (1). Предложение WITH MOVE может быть используется для перемещения одного или нескольких файлов. (Microsoft.SqlServer.Smo)

4b9b3361

Ответ 1

При восстановлении вы должны быть уверены

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

enter image description here

  • вы отмечаете опцию Overwrite на вкладке Options и определяете допустимый и новые имена файлов для файлов .mdf и .ldf, чтобы вы случайно не перезаписывали другой в вашей системе:

enter image description here

Ответ 2

Это сработало для меня: давая другое имя для каждого файла MDF и LDF в разделе script.

MOVE N'R_Data' 
  TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Build51_Testing_db1.mdf',

MOVE N'R_audit' 
  TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Build51_Testing_db2.mdf', 

и т.д...

Первоначально предложенный Альберто Морилло

Ответ 3

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

Однако, когда я столкнулся с этой ошибкой, я восстанавливал базу данных с двумя индексами (Primary и Index). Проблема заключалась в том, что при восстановлении он создал два файла .ndf, по одному для каждого индекса, но назвал их одинаковыми.

Итак, у меня было два восстанавливаемых файла "Восстановить как" до "D:\MSSQLDATA\DatabaseName.ndf.

Чтобы преодолеть это, мне пришлось изменить одно из имен файлов, поэтому, например, я изменил

 Index      |    D:\MSSQLDATA\DatabaseName.ndf
 Primary    |    D:\MSSQLDATA\DatabaseName1.ndf

с уникальными именами файлов исправил это для меня.

Ответ 4

Я знаю это давно со времени последнего ответа, но мне пришлось искать в google решение для этой проблемы. Для меня это было написано сценарием восстановления (изменение имени файла не выполняло трюк) и ручное изменение имен файлов в коде

RESTORE DATABASE [DB_NAME] 
FILE = N'[name]',  
FILE = N'[name1]',
FILE = N'[name2]' 
FROM  DISK = N'[file_path]' 
WITH  FILE = 1m
MOVE N'[name]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[name].mdf',
MOVE N'[name1]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[name1].mdf',
MOVE N'[name2]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[name2].mdf',
MOVE N'[logname]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\\[logname].ldf'
NOUNLOAD,
REPLACE,
STATS = 10
GO

Привет

Ответ 5

Если у вас есть эта проблема, и она не указана выше, попробуйте в разделе "Параметры восстановления > Файлы" установите флажок "Переместить все файлы в папку".

enter image description here