查看 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 中的事务问题

为啥在事务范围内调用 SQL Server 2008 中的全文搜索失败?

sql server 2008 的事务日志文件存储数据库的啥情况

sql server 2000中,如何查询事务日志?事务日志有啥作用?

sql server 2008不用查询语句怎样查看新建的表的信息?像2000中的企业管理器中有个返回所有列一样