我有
- 完整备份-A
- 事务日志备份-A
- Transaction-Log-Backup-B (*) - 我必须恢复此点
- 完整备份-B
怎么办?似乎唯一的办法就是
- 完整备份-A
- 事务日志备份-A
- 事务日志备份-B
- 关闭客户端访问
- 交易日志-C
- 完整备份-B
- 允许客户端访问
还有其他方法可以保证在上一个事务日志和下一个完整备份之间数据库没有发生任何事情吗?我在想
a. 在完整备份的同时启动事务日志备份。 b. 在客户端连接时使用差异备份,并仅在维护时段内进行完整备份 c. 运行复制并备份副本,停止并恢复第 4 点和第 7 点中的复制服务
并觉得其实是没有希望的。
答案1
这是有关将 SQL 2005 恢复到某个时间点的链接: http://msdn.microsoft.com/en-us/library/ms190982(v=sql.90).aspx
当然,您只能恢复到备份点。如果您需要事务日志备份 B 之后发生的数据,则需要恢复完整备份 B。通常在设置备份方案时,您需要确定要“丢失”的最短时间段。因此,如果您需要每 15 分钟备份一次,则需要经常运行事务日志备份,以便尽可能轻松地进行将来的恢复。
答案2
您恢复完整备份,然后恢复两个事务日志备份 - 但您使用命令 STOPAT 在事件发生之前停止。GUI Management Studio 也可以做到这一点。
因此,如果您的事务日志备份是在下午 3 点和下午 4 点,则您可以使用 norecovery 还原下午 3 点的事务日志备份,然后开始还原下午 4 点的事务日志备份文件,但使用 STOPAT。
理想情况下,首先在测试系统上完成所有操作,并从任何可以的人那里获得验证!
如果您不确定事件发生的时间,您可以使用备用数据库将数据库置于只读模式进行测试。