【问题标题】:Rollback transaction using transaction log使用事务日志回滚事务
【发布时间】:2010-11-07 02:56:56
【问题描述】:

是否可以使用 Transactionlog 文件为特定记录回滚事务?

我正在使用SQL Server 2005

【问题讨论】:

    标签: sql-server transactions


    【解决方案1】:

    本机,没有。不过,我相信有一些昂贵的第三方工具可以做到这一点。

    或者,您可以从备份中恢复您的数据库,然后使用STOPAT = '6/30/2009 2:30PM' 参数将RESTORE LOGS 恢复到某个时间点。

    ApexSQL Log Rescue 可用。但是,如果您的日志未处于 FULL 恢复模式,那么如果您无法恢复,您可能会陷入困境。

    【讨论】:

    • 你能给我这些工具的样本吗?
    • 推荐的方法是使用 STOPAT 恢复数据库的副本,然后将数据从副本复制到真实数据库中。
    • 如何知道您的日志处于何种恢复模式?
    【解决方案2】:

    据我所知,您的选择是 ApexSQL Log(价格昂贵,但有免费试用版)或未记录的 SQL Server 命令,例如 DBCC Log 和 fn_dblog。

    只有当您的数据库处于完全恢复模式时,其中的任何一个才会起作用,在这种情况下,SQL Server 会在事务日志中存储更多详细信息。

    另外,我认为这不适用于任何类型的交易。我见过有人使用这种技术来恢复插入、更新、删除,但我很确定它是否可以用来恢复说 ALTER TABLE 或类似的东西。

    【讨论】:

    • 免费试用只会为每 10 条记录生成撤消脚本。
    【解决方案3】:

    就第三方软件而言,您可以免费使用戴尔的Toad 软件三十天,并且它具有带有撤消脚本生成功能的事务日志。

    【讨论】:

      【解决方案4】:

      查看RedGate's LogRescue 产品。如果没有第 3 方产品,您可能只能在时间点恢复到单独的数据库,然后手动将记录复制回您的生产数据库。

      【讨论】:

      • 根据其网页,LogRescue 仅限于 SQL Server 2000
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2018-02-15
      • 1970-01-01
      • 2012-01-16
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多