Как восстановить резервную копию сервера SQL, содержащую данные файлового потока, назначив новое имя папки для данных файлового потока? - PullRequest
0 голосов
/ 02 августа 2010

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

CREATE DATABASE MyDatabase -- I create an empty database

-- I retrieve the filepath of mdf and ldf files
DECLARE @FileData varchar(1000)
DECLARE @FileLog varchar(1000)

set @FileData = (select filename from MyDatabase.dbo.sysfiles where fileid = 1)
set @FileLog = (select filename from MyDatabase.dbo.sysfiles where fileid = 2)

-- I Restore the database from backup by substituting the mdf and ldf files
RESTORE DATABASE MyDatabase
FROM DISK = 'c:\Test\Test.bak'
WITH REPLACE,
MOVE 'MyApp_Data' TO  @FileData, -- I forced the name to be MyApp_Data for simplicity
MOVE 'MyApp_Log' TO  @FileLog    -- I forced the name to be MyApp_Log for simplicity

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

Можете ли вы также прокомментировать мой подход?

1 Ответ

2 голосов
/ 02 августа 2010

Я думаю, что вы можете использовать опцию MOVE и с данными файлового потока.Вы можете запустить следующую команду, чтобы просмотреть список файлов в файле резервной копии.Это поможет определить файл файлового потока.

RESTORE FILELISTONLY
FROM DISK = 'c:\Test\Test.bak'

Что касается вашего общего подхода, я думаю, что вы, возможно, делаете больше, чем нужно.Вам не нужно создавать базу данных, прежде чем восстановить резервную копию.Команда RESTORE позаботится о шагах создания БД.

Итак, ваша команда RESTORE будет такой же, как вы используете, за исключением того, что вы можете исключить опцию REPLACE.Вы можете указать информацию о вашем файле назначения в опции MOVE.

...