Недавно, когда я натолкнулся на скрипт для восстановления базы данных, у меня возникло сомнение, почему мы должны использовать « FILE = 1 »? Разве мы не можем восстановить базу данных без этого заявления? В основном, для чего он используется?
Недавно, когда я натолкнулся на скрипт для восстановления базы данных, у меня возникло сомнение, почему мы должны использовать « FILE = 1 »? Разве мы не можем восстановить базу данных без этого заявления? В основном, для чего он используется?
Ответы:
Вам разрешено сохранять более одной резервной копии в файле резервной копии (например, на устройстве). Предложение FILE
позволяет получить доступ к определенной операции резервного копирования, когда в .bak
файле есть несколько вариантов выбора .
Дополнительные сведения о различных параметрах команды RESTORE см. В следующей документации MSDN для аргументов RESTORE .
Если вы заглянете в раздел « Параметры резервного набора », вы найдете:
FILE = { backup_set_file_number | @ backup_set_file_number }
Определяет набор резервных копий для восстановления. Например, backup_set_file_number из 1 указывает первый резервный набор на резервный носитель и backup_set_file_number из 2 обозначает второй набор резервного копирования. Вы можете получить backup_set_file_number набора резервных копий, используя инструкцию RESTORE HEADERONLY.
Если не указано, по умолчанию используется значение 1, за исключением RESTORE HEADERONLY, и в этом случае обрабатываются все резервные наборы в наборе носителей. Дополнительные сведения см. В разделе «Указание набора резервных копий» далее в этом разделе.
Важно!
Этот параметр FILE не связан с параметром FILE для указания файла базы данных, FILE = { logic_file_name_in_backup | @ logic_file_name_in_backup_var }.
Да, вы должны быть в состоянии восстановить без , FILE = 1
как 1
это в любом случае по умолчанию. И если у вас есть только один набор резервных копий в файле резервной копии, тогда это не должно вызывать проблем.
Ниже приведен пример, иллюстрирующий использование этой FILE
опции: пример B со страницы MSDN с командой RESTORE (ссылка выше). В нем показано, как выполнить два восстановления из одного файла резервной копии: первая - это полная резервная RESTORE
копия, а вторая RESTORE
- дифференциальная резервная копия.
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
WITH FILE = 6
NORECOVERY;
RESTORE DATABASE AdventureWorks2012
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
WITH FILE = 9
RECOVERY;