日志链和SQL Server事务日志 - 完整性检查

时间:2010-11-10 12:38:35

标签: sql-server sql-server-2005 transaction-log

我正在帮助进行相当临时的灾难恢复,我们几周前恢复了数据库备份,然后从事务日志备份中恢复了事务。

我们使用SQL Server Management Studio完成了此操作 - 右键单击​​数据库,恢复完整备份但保持恢复模式,再次右键单击,恢复事务日志等。

我现在正在尝试验证我们的日志中没有间隙。是否可以安全地假设如果SQL Server Management Studio允许我无错误地恢复日志,那么日志中没有间隙(例如log chain已完成)?

换句话说 - 如果存在差距,SQL会让我恢复日志吗?我认为在这种情况下它会警告我或阻止我。

感谢您提供任何帮助....

我们使用的是SQL 2005,但我认为所有版本的日志链规则都相似。

2 个答案:

答案 0 :(得分:4)

根据Microsoft的文档Working with Transaction Log Backups

  

如果日志备份丢失或损坏,启动新的日志链,方法是创建完整或差异数据库备份,然后备份事务日志以启动新的日志链。我们建议您保留在缺少日志备份之前的事务日志备份,以防您希望将数据库还原到这些备份中的某个时间点。有关如何帮助保护备份的信息,请参阅备份和还原的安全注意事项。

Creating Transaction Log Backups州:

  

如果事务日志已损坏,则自最新日志备份丢失以来执行的工作。这突出了将日志文件放在容错存储上的重要性。

我对此的免费阅读是: 考虑到文件丢失是一种文件损坏,如果Management Studio或任何其他工具允许您无错误地还原日志,则可以确保日志链完成,直到您应用的最后一个事务日志备份。您必须确定它是该数据库可用的最后一个事务日志备份,但这是另一个需要考虑的事项。

如果您不相信我的阅读(并且文档在这一点上不太清楚),您可以进行简单的测试以确定:假设您有10个交易日志要应用...故意删除第7个(或者是随机的,但不是第一个也不是最后一个)事务日志,并尝试使用您的灾难恢复方法。

如果您收到类似“缺少事务日志文件备份”的错误,您可以确定并信任我。

答案 1 :(得分:2)

你是对的。如果无法应用,SQL将不会应用事务日志备份,您将收到错误。