如何还原到某个时间点 (Transact-SQL)
本主题说明如何还原到某个时间点。
还原到某个时间点
执行使用 NORECOVERY 选项的 RESTORE DATABASE 语句。
执行 RESTORE LOG 语句以应用每个日志备份,同时指定:
- 应用事务日志的数据库的名称。
- 从其中还原事务日志备份的备份设备。
- RECOVERY 和 STOPAT 选项。如果事务日志备份不包含要求的时间(例如,如果指定的时间超出了事务日志所包含的时间范围),则会生成警告,并且不会恢复数据库。
示例
下面的示例将 AdventureWorks
数据库还原到它在 12:00 AM on April 15, 2005
的状态。还原顺序使用 NORECOVERY
选项安装完整的数据库备份并应用三个日志备份,同时在每个 RESTORE LOG
语句中指定 RECOVERY
和 STOPAT
选项。备份设备是名为 AdventureWorksBackups
的逻辑备份设备。
重要提示: |
---|
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)