如何还原到某个时间点 (Transact-SQL)

本主题说明如何还原到某个时间点。

还原到某个时间点

  1. 执行使用 NORECOVERY 选项的 RESTORE DATABASE 语句。

  2. 执行 RESTORE LOG 语句以应用每个日志备份,同时指定:

    • 应用事务日志的数据库的名称。
    • 从其中还原事务日志备份的备份设备。
    • RECOVERY 和 STOPAT 选项。如果事务日志备份不包含要求的时间(例如,如果指定的时间超出了事务日志所包含的时间范围),则会生成警告,并且不会恢复数据库。

示例

下面的示例将 AdventureWorks 数据库还原到它在 12:00 AM on April 15, 2005 的状态。还原顺序使用 NORECOVERY 选项安装完整的数据库备份并应用三个日志备份,同时在每个 RESTORE LOG 语句中指定 RECOVERYSTOPAT 选项。备份设备是名为 AdventureWorksBackups逻辑备份设备

ms179451.note(zh-cn,SQL.90).gif重要提示:
AdventureWorks 数据库使用简单恢复模式。若要允许日志备份,请在完整备份数据库之前使用 ALTER DATABASE AdventureWorks SET RECOVERY FULL 将数据库设置为使用完整恢复模式。
-- Restore the full database backup.
RESTORE DATABASE AdventureWorks
   FROM AdventureWorksBackups 
   WITH NORECOVERY;
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
GO
RESTORE LOG AdventureWorks
   FROM AdventureWorksBackups
   WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM';
   GO 

请参阅

概念

恢复到特定时间

其他资源

RESTORE (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助