2013-11-22 7 views
0

У меня есть файл .bak, который я создал с помощью SQL Server 2008 R2 Express.Не удалось восстановить файл резервной копии SQL Server 2008 R2 Express на SQL Server 2012 Express

я попытался восстановить его в SQL Server 2012 Express, но получил следующее сообщение об ошибке:

Msg 5133, уровень 16, состояние 1, строка 2
Каталог просмотра для файла «C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate.mdf "не удалось с ошибкой операционной системы 3 (система не может найти указанный путь).

Msg 3156, уровень 16, состояние 3, строка 2
Файл 'RealEstate' не может быть восстановлен в 'C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate.mdf'. Используйте WITH MOVE для определения допустимого местоположения файла.

Msg 5133, Level 16, State 1, Line 2
поиска каталога для файла "C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate_log.ldf" Сбой операционной системы ошибка 3 (система не может найти указанный путь).

Msg 3156, уровень 16, состояние 3, строка 2 Файл 'RealEstate_log' не может быть восстановлен в "C: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ RealEstate_log.ldf. Используйте WITH MOVE для определения допустимого местоположения файла.

Msg 3119, Level 16, State 1, Line 2
Проблемы были определены при планировании инструкции RESTORE. Предыдущие сообщения предоставляют подробную информацию.

Msg 3013, уровень 16, состояние 1, строка 2
БАЗА ДАННЫХ RESTORE прекращается анормально.

Может кто-нибудь, пожалуйста, помогите мне решить эту проблему?

Для вашей информации,

файл .bak был создан из базы данных SQL Server 2008 R2 работает на моем старом компьютере, который умер в прошлом месяце.

Я только что купил новый компьютер и решил установить SQL Server 2012 вместо этого.

Я хотел бы восстановить этот файл .bak в SQL Server 2012, запущенный на моем новом ПК.

В SQL Server 2008 R2, базы данных хранятся в

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA. 

Между тем в SQL Server 2012, базы данных хранятся в

C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA. 

Интересно, если исходный путь действительно хранится в файл .bak. Кто-нибудь знает об этом?

+0

Пожалуйста, пожалуйста! отформатируйте вопрос и сделайте его читаемым. – swiftBoy

+0

** Да - конечно ** это путь! ** READ ** сообщение об ошибке (* Система не может найти указанный путь *) - это ясно говорит вам, что он пытается сохранить файлы из резервной копии на старый (2008 R2) путь, который не существует на вашем новом машина больше! Вам нужно будет восстановить файл резервной копии и ** явно указать **, куда файлы должны идти (в ваш ** новый каталог **) –

ответ

0

Если вы переходите с SQL 2008 на SQL 2012, попробуйте что-то вроде этого.

RESTORE DATABASE DBName FROM DISK = 'C:\Path\To\Bak\File' WITH REPLACE; 
+0

Просто попробовал и все еще получал те же сообщения об ошибках. – hgouw

+0

Вы создали пустую базу данных на сервере 2012 года с тем же именем перед началом работы? – Potenza

0
RESTORE DATABASE RealRestate 
    FROM DISK = 'C:\PATH_TO\RealEstate.bak' 
    WITH MOVE '<dataname>' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\RealEstate.mdf', 
     MOVE '<logname>' TO 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\RealEstate_log.ldf', REPLACE 

Заметьте, я уже вложил в новое место

<dataname> и <logname> можно найти с

restore filelistonly from disk ='C:\PATH_TO\RealEstate.bak' 

Это не восстановит ничего, но показать вам свойства вас баковый файл. В колонке Logicalname вы увидите названия для <dataname> (где тип D) и <logname> (где тип L)

Смежные вопросы