Восстановление базы данных с переходом
Я пытаюсь восстановить резервную копию базы данных, но получаю ошибку:
Сбой восстановления для сервера "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)
Ответы
Ответ 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]()