如何从事务日志执行 SQL 回滚

Posted

技术标签:

【中文标题】如何从事务日志执行 SQL 回滚【英文标题】:How to perform SQL Roll back from transaction logs 【发布时间】:2013-06-01 11:13:23 【问题描述】:

我有可以追溯到 6 个月的交易日志文件。我需要从数据库中回滚 2013 年 5 月 20 日之后发生的所有事情。谁能告诉我如何做到这一点?

【问题讨论】:

您是否尝试阅读documentation? @mvp:让我看看你提供的链接。它说的是 SQL 2012。另外,我问了 DBA,他说在日志文件上执行备份的链接很好(SQL 方式)。这是由于完全恢复模式而从未被截断的原始日志文件。我们如何开始备份这个日志文件以便回滚?这行得通吗? 【参考方案1】:

首先,复制数据库的 MDF 和 LDF 文件。比后悔更安全

也可以将数据库恢复到SQL Server 2008R2 中的某个时间点。无需先创建事务日志备份,它会由 SQL Server 自动完成。您可以在此处找到有关 log-tail 备份的更多信息:Tail-Log Backups

    在数据库上下文菜单中选择还原数据库

    将数据库保留为源。点击时间轴

    选择特定日期和时间。如果您拖动时间指针,您将能够看到您的事务日志回溯了多长时间。请注意,亮绿色表示交易从未备份过

完成后,安排事务日志备份。在完全恢复模式下拥有数据库并且从不备份在线事务日志是没有意义的

【讨论】:

拯救了我的一天!我知道我不应该写这种 cmets,但是谢谢!

以上是关于如何从事务日志执行 SQL 回滚的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver中事务的作用是啥?

Innodb引擎执行SQL的过程

sql 回滚语句

不太了解 SQL Server 事务日志

使用事务日志回滚事务

SQL Server-聚焦事务对本地变量临时表表变量影响以及日志文件存满时如何收缩(三十一)