SQL Server 事务日志截断、回绕与收缩(转载)
每个 SQL Server 数据库都具有事务日志,用于记录所有事务以及每个事务对数据库所做的修改。 必须定期截断事务日志以避免它被填满。 但是,一些因素可能延迟日志截断,因此监视日志大小很重要。 某些操作可以最小日志量进行记录以减少其对事务日志大小的影响。
事务日志是数据库的重要组件,如果系统出现故障,则可能需要使用事务日志将数据库恢复到一致状态。 删除或移动事务日志以前,必须完全了解此操作带来的后果。
事务日志支持以下操作:
- 恢复个别的事务。
- 在 SQL Server 启动时恢复所有未完成的事务。
- 将还原的数据库、文件、文件组或页前滚至故障点。
- 支持事务复制。
- 支持高可用性和灾难恢复解决方案:AlwaysOn 可用性组、数据库镜像和日志传送。
事务日志截断
日志截断将释放日志文件的空间,以便由事务日志重新使用。 日志截断主要用于阻止日志填充。 日志截断可从 SQL Server 数据库的逻辑事务日志中删除不活动的虚拟日志文件,释放逻辑日志中的空间以便物理事务日志重用这些空间。 如果事务日志从不截断,它最终将填满分配给物理日志文件的所有磁盘空间。
为了避免这个问题,除非由于某些原因延迟日志截断,否则将在以下事件后自动进行截断:
1、简单恢复模式下,在检查点之后发生。将数据库恢复模式配置为简单模式。
2、在完整恢复模式或大容量日志恢复模式下,如果自上一次备份后生成检查点,则在日志备份后进行截断(除非是仅复制日志备份)。
在备份数据库的时候可以选择进行日志备份,如图。(注意日志备份的前提是已经进行过数据库的完整备份)。
注意下图的截断事物日志选项只有在进行事物日志备份的时候才可用,如果进行完整或差异备份,则不能选择该选项。