SQL Server: принудительное резервное копирование / восстановление местоположения - PullRequest
3 голосов
/ 17 августа 2011

Взял копию базы данных SQL Server Express на ноутбуке с помощью команды BACKUP DATABASE, сейчас я пытаюсь восстановить ее на другом компьютере с помощью оператора T-SQL:

RESTORE DATABASE [OurDB]
FROM DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part1.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part2.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part3.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part4.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part5.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part6.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part7.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part8.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part9.bak',
DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part10.bak'
WITH REPLACE
GO

Но когда он пытается восстановить, я получаю сообщение об ошибке

Сообщение 5133, уровень 16, состояние 1, строка 1
Поиск в каталоге для файла "c: \ Program Files \ Microsoft SQL Server \"MSSQL.1 \ MSSQL \ DATA \ AppConfig_Data.ndf "не удалось с ошибкой операционной системы 3 (не удалось получить текст для этой ошибки. Причина: 1815).

и несколько других, все похожиеошибки.Проблема в том, что SQL Server пытается восстановить базу данных в каталог C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\, каталог данных на исходном компьютере, с которого была сделана резервная копия.

Но на новом компьютере я хочу восстановитьпуть к данным SQL Server: C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA

Как изменить путь в файлах данных, чтобы восстановить его в правильном расположении?

1 Ответ

2 голосов
/ 17 августа 2011

Вам нужно добавить дополнительную информацию в вашу команду RESTORE, чтобы определить, куда эти биты должны идти - что-то вроде:

RESTORE DATABASE [OurDB]
FROM DISK = N'C:\Documents and Settings\Sam\Desktop\DBBackup\part1.bak',
MOVE N'Your_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\OurDB.mdf',  
MOVE N'Your_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\OurDB_Log.ldf'
...