Saman Chalian Asked: 2015-11-30 06:09:12 +0800 CST2015-11-30 06:09:12 +0800 CST 2015-11-30 06:09:12 +0800 CST 从完全恢复模式切换到简单模式后如何减少日志文件? 772 我有一个具有完整恢复模式且没有 TLog 备份的数据库。 日志文件已增长到 160GB,我发现它需要定期备份 TLog 或将恢复模式切换为简单。现在我已切换到简单恢复模式,.ldf 文件的大小仍然相同。 我怎样才能减少它? sql-server disaster-recovery 2 个回答 Voted Jefferson B. Elias 2015-11-30T07:43:32+08:002015-11-30T07:43:32+08:00 您需要对日志文件执行收缩操作。 您可以按照那里的说明进行操作。 PS:不要忘记切换回完整模式。 Best Answer KASQLDBA 2015-12-01T04:11:00+08:002015-12-01T04:11:00+08:00 直接切换到简单恢复模式是一开始不应该遵循的事情,具体取决于您愿意保留的数据有多重要。首先收缩日志文件而不分析导致日志文件增长的原因,将没有好处,因为它会再次导致类似的增长: 因此,您可能希望首先使用以下查询调查导致日志文件变大的原因,以了解可能阻止您的事务日志被截断的原因。 SELECT name, log_reuse_wait_desc FROM sys.databases 现在我已切换到简单恢复模式,.ldf 文件的大小仍然相同。 可能的原因是长期运行的事务。您必须再次检查是否使用DBCC opentran()查找任何可能延迟日志截断持续时间的长时间运行的事务。此外,简单恢复模型将根据频率间隔确定的频率或日志是否已满 70% 及以上来执行检查点。 根据你的 RTO/RPO,你可能想先做一个日志备份,如果没有任何效果,缩小日志文件将是你解决问题的最后最佳手段,但需要确保恢复模型已改回 FULL。 您可能想去阅读下面的精彩读物,这也会有所帮助: 为什么事务日志不断增长或空间不足? 检查点如何工作以及记录什么 提高事务日志吞吐量的 8 个步骤
您需要对日志文件执行收缩操作。
您可以按照那里的说明进行操作。
PS:不要忘记切换回完整模式。
直接切换到简单恢复模式是一开始不应该遵循的事情,具体取决于您愿意保留的数据有多重要。首先收缩日志文件而不分析导致日志文件增长的原因,将没有好处,因为它会再次导致类似的增长:
因此,您可能希望首先使用以下查询调查导致日志文件变大的原因,以了解可能阻止您的事务日志被截断的原因。
可能的原因是长期运行的事务。您必须再次检查是否使用
DBCC opentran()
查找任何可能延迟日志截断持续时间的长时间运行的事务。此外,简单恢复模型将根据频率间隔确定的频率或日志是否已满 70% 及以上来执行检查点。根据你的 RTO/RPO,你可能想先做一个日志备份,如果没有任何效果,缩小日志文件将是你解决问题的最后最佳手段,但需要确保恢复模型已改回 FULL。
您可能想去阅读下面的精彩读物,这也会有所帮助:
为什么事务日志不断增长或空间不足?
检查点如何工作以及记录什么
提高事务日志吞吐量的 8 个步骤