Чому ми використовуємо FILE = 1 у скриптах для відновлення бази даних


13

Нещодавно, коли я натрапив на сценарій відновлення бази даних, у мене виникли сумніви, чому нам доводиться використовувати " FILE = 1 "? Чи не можемо ми відновити базу даних без цього твердження? В основному, для чого він використовується?

Відповіді:


22

Ви можете зберігати більше однієї резервної копії у файлі резервної копії (тобто пристрої). FILEПункт дозволяє отримати доступ до конкретної операції резервного копіювання при наявності кілька на вибір в .bakфайл.

Для отримання додаткової інформації про різні параметри команди RESTORE , будь ласка, дивіться наступну документацію MSDN для аргументів RESTORE .

Якщо ви заглянете в розділ Параметри набору резервних копій , ви знайдете:

FILE = { backup_set_file_number | @ backup_set_file_number }

Визначає набір резервних копій, який потрібно відновити. Наприклад, backup_set_file_number of 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 зі сторінки команди RESTORE MSDN (пов'язана вище). Він показує, що виконується два відновлення з одного файла резервного копіювання: перший RESTORE- ПОВНА резервна копія, а другий RESTORE- резервна копія DIFFerential.

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;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.