如何在现有文件上还原文件和文件组 (Transact-SQL)

本主题说明如何在现有文件上还原文件和文件组。

重要说明重要提示

还原文件和文件组的系统管理员必须是当前使用要还原数据库的唯一人员。

在现有文件上还原文件和文件组

  1. 执行 RESTORE DATABASE 语句以还原文件和文件组备份,同时指定下列内容:

    • 要还原的数据库的名称。

    • 从中还原完整数据库备份的备份设备。

    • 每个要还原文件的 FILE 子句。

    • 每个要还原文件组的 FILEGROUP 子句。

    • REPLACE 选项,用来指定可以在具有相同名称和位置的现有文件上还原每个文件。

      注意事项注意

      请慎重使用 REPLACE 选项。有关详细信息,请参阅使用 REPLACE 选项

    • NORECOVERY 选项。如果在创建备份之后没有对文件进行修改,则指定 RECOVERY 子句。

  2. 如果在创建文件备份之后对文件进行了修改,则执行 RESTORE LOG 语句以应用事务日志备份,同时指定下列内容:

    • 事务日志将应用到的数据库的名称。

    • 要还原的事务日志备份的备份设备。

    • 如果在应用当前事务日志备份之后还要应用其他事务日志备份,则指定 NORECOVERY 子句;否则指定 RECOVERY 子句。

      事务日志备份(如果已应用)必须包含备份文件和文件组时的时间。

示例

下例将还原 MyNwind 数据库的文件和文件组,并替换任何具有相同名称的现有文件。为了将数据库还原到当前时间,还将应用两个事务日志。

USE master
GO
-- Restore the files and filesgroups for MyNwind.
RESTORE DATABASE MyNwind
   FILE = 'MyNwind_data_1',
   FILEGROUP = 'new_customers',
   FILE = 'MyNwind_data_2',
   FILEGROUP = 'first_qtr_sales'
   FROM MyNwind_1
   WITH NORECOVERY,
   REPLACE
GO
-- Apply the first transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log1
   WITH NORECOVERY
GO
-- Apply the last transaction log backup.
RESTORE LOG MyNwind
   FROM MyNwind_log2
   WITH RECOVERY
GO