本主题仅适用于使用完整恢复模式或大容量日志恢复模式的 SQL Server 数据库。
在大容量日志恢复模式下,如果日志备份包含大容量更改,则不能使用时点恢复方式恢复到该备份内的某个点。必须将数据库恢复到事务日志备份的结尾。
还原到特定时间
- 如何还原到某个时点 (SQL Server Management Studio)
- 如何还原到某个时间点 (Transact-SQL)
- 如何还原到故障点 (Transact-SQL)
- ToPointInTime (SMO)
还原到特定时间的 Transact-SQL 语法
![]() |
---|
指定特定时间或带标记的事务的语法与 Microsoft SQL Server 2000 中的一样,不同的是这些语法现在可以应用于 RESTORE DATABASE 和 RESTORE LOG。 |
RESTORE 语句提供了 STOPAT 选项,用于将数据库还原到特定时间点,此选项通常在还原日志备份时使用。
基本语法为:
RESTORE LOG database_name FROM <backup_device> WITH STOPAT =time, RECOVERY…
恢复点是在 time 指定的 datetime 值或之前发生的最后的事务提交。
若要只还原在特定时间点之前所做的修改,请为还原的每个备份指定 WITH STOPAT = 时间。这样确保了不会超出目标时间。
通常,时点还原顺序分为以下阶段:
- 还原上次完整数据库备份以及上次差异数据库备份(如果有),而不恢复数据库 (RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY)。
- 以事务日志备份的创建顺序应用每个事务日志备份,指定想要停止还原日志的时间 (RESTORE DATABASE database_name FROM <backup_device> WITH STOPAT**=time,** RECOVERY)。
有关详细信息,请参阅将数据库还原到备份中的某个时间点。
请参阅
概念
应用事务日志备份
使用标记的事务(完全恢复模式)
了解 SQL Server 中备份的还原和恢复工作方式
其他资源
backupset (Transact-SQL)
RESTORE (Transact-SQL)
RESTORE HEADERONLY (Transact-SQL)
实现 SQL Server 数据库还原方案
将数据库还原到备份中的某个时间点
使用 SQL Server 数据库还原顺序