我收到了警报
事件 ID:3619。无法在数据库“ID ####”中写入检查点记录,因为日志空间不足
我知道它为什么会发生,我已经解决了这个问题,备份了 t-logs,缩小了过度增长的日志,并且尽我所能确保它不会再次发生。导致日志填满的问题是索引重建。
除了检查点没有被写入和特定的索引重建没有完成之外,我没有看到任何其他问题。
失败的检查点写入(本身)是否会导致我可能需要解决的任何损坏?
我收到了警报
事件 ID:3619。无法在数据库“ID ####”中写入检查点记录,因为日志空间不足
我知道它为什么会发生,我已经解决了这个问题,备份了 t-logs,缩小了过度增长的日志,并且尽我所能确保它不会再次发生。导致日志填满的问题是索引重建。
除了检查点没有被写入和特定的索引重建没有完成之外,我没有看到任何其他问题。
失败的检查点写入(本身)是否会导致我可能需要解决的任何损坏?
这样不会造成任何损害,检查点所做的是将脏页从缓冲池写入磁盘,从而减少恢复时间和 SQL Server 在重新启动或崩溃恢复后必须执行的工作量。在极端情况下,如果数据库进行崩溃恢复,恢复数据库所需的时间将会增加。
在您的情况下,您发现实际上是索引重建产生了一些大量的日志并最终由于日志驱动器上的磁盘空间不足而失败,这很好。这只会回滚操作,并会带来重建之前的碎片
检查点进程将记录写入日志以允许数据库恢复进程(在启动数据库时使用)作为基准时间点。换句话说,恢复过程只查看自日志中存在的最后一个检查点记录以来的日志记录。日志中记录的项目允许 SQL Server 回滚或前滚在 SQL Server 实例关闭或失败时未完全提交的事务。
我会进行完整的数据库备份和日志备份,以确保您的备份链中有一个最近的检查点。
从检查点的 MSDN 页面:
所以,直接回答你的问题;如果无法写入检查点,则日志中包含的较早检查点将用作恢复的基点。本质上,您收到的错误应该被视为您已用完日志空间的警告。