是否可以使用Transactionlog文件为特定记录回滚事务?
我正在使用SQL Server 2005。
答案 0 :(得分:10)
本地,没有。不过,我相信有一些昂贵的第三方工具可以做到这一点。
或者,您可以从备份恢复数据库,然后使用STOPAT = '6/30/2009 2:30PM'
参数将RESTORE LOGS
恢复到某个时间点。
有Apex和SQL Log Rescue可用。但是,如果您的日志未处于FULL
恢复模式,则如果无法恢复,则可能会出现问题。
答案 1 :(得分:5)
据我所知,您的选项是ApexSQL Log(价格昂贵,但有免费试用版)或未记录的SQL Server命令,例如DBCC Log和fn_dblog。
任何这些只有在数据库处于完全恢复模式时才有效,在这种情况下,SQL Server会在事务日志中存储更多详细信息。
此外,我认为这不适用于任何类型的交易。我见过人们使用这种技术来恢复插入,更新,删除,但我真的很确定它是否可以用来恢复说ALTER TABLE或类似的东西。
答案 2 :(得分:4)
就第三方软件而言,您可以免费使用戴尔的Toad软件30天,并且它具有撤消脚本生成功能的事务日志。
答案 3 :(得分:3)
查看RedGate's LogRescue产品。如果没有第三方产品,您可能仅限于将时间点还原到单独的数据库,然后手动将记录复制回生产数据库。