2014-01-07 121 views
2

我们有一个SQL Server 2008 R2数据库,可以随时备份事务日志。今天在上午12点左右导致数据库出现严重错误...我有交易日志上午8点,然后上午12点 - 下午16点 - 等SQL Server 2008 R2中事务日志的反向更改?

我的问题是:我可以反向合并这些事务日志到数据库,以便我在上午8点返回到数据库状态?

或者是我最好的机会恢复旧的完整备份并将所有事务日志恢复到上午8点?

第一个选项是可取的,因为完整备份已经执行了一段时间,我害怕从那里恢复并应用trn日志。我是否对此感到惊慌?如果按照这种情况(恢复完整备份并应用trn日志),实际上是否有可能发生任何不良情况?

+0

你想要的东西的名称是[“时间点恢复”](http://technet.microsoft.com/en-us/library/ms190982(v = sql.105).aspx)。数据库中有哪些恢复模式?完整或批量记录(希望前者) –

+0

我们已经有了完全备份模型。 –

回答

4

事实上,您不创建常规事务日志备份不会影响恢复过程的成功。只要数据库处于完全恢复模式,交易将存储在联机事务日志中并保存在该事务日志中,直到进行事务日志备份。如果您比平时晚进行事务日志备份,这只意味着联机事务日志可能会增长,并且备份可能会更大。它不会导致任何交易记录丢失。

通过完整的事务日志备份链回到上午8点,您可以成功地将整个数据库回滚到某个时间点。

至于恢复完整备份和应用TRN日志 - 什么都不出问题,但它总是建议先测试在测试服务器上的情况下,而不是直接在生产

要恢复到某个时间点:

  1. 在SSMS扩大数据库
  2. 右键单击数据库,选择任务|恢复|数据库
  3. 在常规选项卡的备份集中,将列出可用的备份。点击时间轴
  4. 选择特定的日期和时间,改变时间间隔以显示更宽的时间范围,将滑块移动到要回滚到

enter image description here

时间

您可以在此处找到更详细的说明:How to: Restore to a Point in Time (SQL Server Management Studio)

请记住,此过程将回滚所有cha对数据库进行了修改。如果您只想回滚特定更改(例如,只有恢复一些被删除的数据,或反向错误的更新),我建议第三方工具,如ApexSQL日志

Reverting your SQL Server database back to a specific point in time

Restore a database to a point in time

声明:我ApexSQL工作作为支持工程师