2

问题是这样的:

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 之间的状态。日志级别为已满。

编辑:我已经运行 DBCC LOG(DB-Name, 3),但日志似乎被截断。尽管必须有数千个,但只有 10 个项目。

4

3 回答 3

4

要重播日志,您始终从完整日志开始,应用差异,然后应用日志备份。时间线总是从完整备份向前,从不向后。因此,要进入 t0 之后的状态(即恢复已删除的记录),您从t0之前进行的完整备份开始,然后在 t0 停止应用日志备份。

于 2009-07-30T23:58:56.720 回答
4

虽然不是一个理想的解决方案,但您可以尝试将数据库备份恢复到单独的数据库中,比较数据库并手动进行所需的更改。

另一种方法是使用第三方事务日志阅读器,例如ApexSQL Log

于 2013-05-14T11:10:38.000 回答
3

槊,

事务日志不是为查看事务而设计的。它不是那种真正的日志。另外,当您进行事务日志备份时,会截断日志文件,因为信息已备份到文件中。

另外值得一提的是,当您将数据库置于完全恢复模式时,它实际上会一直处于简单模式,直到您进行完全数据库备份。因此,如果在 t0 之前没有进行备份,那么您将无法返回该状态。

于 2009-07-31T04:10:30.947 回答