查看 SQL Server 2008 中的所有事务日志
Posted
技术标签:
【中文标题】查看 SQL Server 2008 中的所有事务日志【英文标题】:View all transaction logs in SQL Server 2008 【发布时间】:2010-11-15 15:37:39 【问题描述】:问题是这样的:
t0: Insert is made into my database
t1: Delete is executed
t2: Full backup is made
t3: Transaction log backup is made
如何在 t3(现在)之后恢复已删除的记录?我希望数据库处于 t0 和 t1 之间的状态。日志级别为 Full。
编辑:我已经运行了 DBCC LOG(DB-Name, 3),但日志似乎被截断了。尽管必须有数千个,但只有 10 个项目。
【问题讨论】:
【参考方案1】:虽然不是一个理想的解决方案,但您可以尝试将数据库备份恢复到单独的数据库中,比较数据库并手动进行所需的更改。
另一种方法是使用第三方事务日志阅读器,例如ApexSQL Log。
【讨论】:
【参考方案2】:兰斯,
事务日志并非旨在查看事务。它不是那种真正的日志。另外,当您进行事务日志备份时,会截断日志文件,因为信息已备份到文件中。
另外值得一提的是,当您将数据库置于完全恢复模式时,它实际上会一直处于简单模式,直到您进行完全数据库备份。因此,如果在 t0 之前没有进行备份,那么您将无法回到该状态。
罗伯
【讨论】:
【参考方案3】:要重播日志,您始终从完整日志开始,应用差异,然后应用日志备份。时间线总是从完整备份向前,从不向后。因此,要进入 t0 之后的状态(即恢复已删除的记录),您从 在 t0 之前进行的完整备份开始,然后在 t0 停止应用日志备份。
【讨论】:
我还能查看在 t0 和 t1 之间发生的所有活动吗? 要查看在 t0 和 t1 之间发生的活动,您可以在 t1 发生时停止日志恢复。见msdn.microsoft.com/en-us/library/ms179451.aspx以上是关于查看 SQL Server 2008 中的所有事务日志的主要内容,如果未能解决你的问题,请参考以下文章
为啥在事务范围内调用 SQL Server 2008 中的全文搜索失败?
sql server 2008 的事务日志文件存储数据库的啥情况