1. 有产生大日志操作,如重建整理索引,大量数据修改等
2.
长期未提交事务,为保证为提交事务可以回滚,从最早为提交事务开始之后的所有事务,都是活动事务,不能被截断或覆盖
3. 日志没有定期备份
4.
镜像或复制需要读取但还未读取的日志会被保留,镜像或复制出现错误时,会导致日志无法截断
5. 检查点的执行频率过低(被人为修改)
6.
用户打开游标但为及时取走数据并关闭右边
查看当前日志不能截断的原因
SELECT name,DB.log_reuse_wait_desc FROM sys.databases DB
?
事务日志空间的重用操作当前正在等待下列各项之一:
0 = 无
1 = 检查点
2 = 日志备份
3 =
活动备份或还原
4 = 活动事务
5 = 数据库镜像
6 = 复制
7 = 数据库快照创建
8 = 日志扫描
9 =
AlwaysOn 可用性组辅助副本正将此数据库的事务日志记录应用到一个相应的辅助数据库。
适用于:SQL Server 2012 到 SQL Server
2012。 在早期版本的 SQL Server 中,9 = 其他(暂时)。
10 = 仅供内部使用
11 = 仅供内部使用
12 =
仅供内部使用
13 = 最早的页面
适用于:SQL Server 2012 到 SQL Server 2012。
14 =
其他(暂时)
适用于:SQL Server 2012 到 SQL Server 2012。
在收缩日志前需考虑是否需要规划日志的大小,然后备份数据库日志,再进行收缩
备份收缩可能需要循环多次才能将数据库日志文件缩小到设定值
收缩日志的另外一个好处是较少虚拟日志文件数量