为什么我们在脚本中使用FILE = 1来还原数据库


Answers:


22

您可以在一个备份文件(即设备)中保存多个备份。FILE当文件中有多个选项可供选择时,该子句允许您访问特定的备份操作.bak

有关RESTORE命令的各种选项的更多信息,请参见以下MSDN文档中的RESTORE Arguments

如果查看“ 备份集选项”部分,则会发现:

FILE = { backup_set_file_number | @ backup_set_file_number }

标识要还原的备份集。例如,backup_set_file_number1表示备份介质上的第一个备份集,backup_set_file_number2表示第二个备份集。您可以使用RESTORE HEADERONLY语句获取备份集的backup_set_file_number

如果未指定,则默认值为1,“ RESTORE HEADERONLY”除外,在这种情况下,将处理媒体集中的所有备份集。有关详细信息,请参阅本主题后面的“指定备份集”。

重要说明:
此FILE选项与用于指定数据库文件的FILE选项无关,FILE = { logical_file_name_in_backup | @ logical_file_name_in_backup_var }。

是的,无论如何,您都应该可以不使用FILE = 1as作为1默认值进行还原。而且,如果备份文件中只有一个备份集,那么它就不会造成问题。

下面是一个帮助说明何时使用该FILE选项的示例,它是RESTORE命令MSDN页面(上面链接)中的示例B。它显示了从单个备份文件执行两次还原:第一个RESTORE是FULL备份,第二个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;
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.