SQL Server:日志文件越来越大,并且不会与 MDF 文件合并

SQL Server:日志文件越来越大,并且不会与 MDF 文件合并

我的数据库文件看起来非常可疑。我们在生产阶段使用数据库。我看到 LDF 文件越来越大。而 MDF 文件似乎根本没有增长(我没有文件大小历史记录来证明这一点,但我认为它没有这样做!!我敢打赌!)

那么我猜会发生什么?我该如何强制合并到 MDF?

答案1

您是否定期进行日志备份?比如每 30 分钟一次?要么开始进行日志备份,要么将恢复模式更改为简单。

你总是可以看到日志重用的原因系统数据库,log_reuse_wait_desc 列:

事务日志空间重用的描述目前正在等待下列操作之一:

  • 没有什么
  • 检查站
  • 日志备份
  • 主动备份或恢复
  • 活动交易
  • 数据库镜像
  • 复制
  • 数据库快照创建
  • 日志扫描
  • 其他_临时

有关详细信息,请参阅For more information, see可能延迟日志截断的因素

答案2

LDF 会跟踪在 MDB 文件上执行的所有事务,而不仅仅是实际数据。因此,即使您没有插入新数据(更新和删除语句也会被记录),日志文件也会继续增长,直到您对相关数据库进行完整备份。一旦您进行了完整备份,SQL 就不需要保留备份之前的所有非活动事务,因为您可以简单地从备份中恢复。然后,您就可以将文件缩小到原来的大小。定期备份将使您不必执行这最后一步。

以下是一些MS 知识库文章向您介绍一些您可以采取的具体步骤。

此外,如果这是重要数据,请阅读几篇文章,了解为什么您不应该执行诸如截断日志文件或执行 no_log 备份选项之类的操作。本质上,如果您没有进行备份并执行其中一项功能,那么您就是在丢弃可用于帮助恢复数据库的未备份数据。

SQL 日志文件陷阱

答案3

回答你的第一个疑问:

您的数据库文件 (MDF) 可能仍有其初始默认大小的可用空间。数据库通常在其使用的文件中有可用空间。最终,它将填满,然后您会看到它变大(假设您已启用此功能)。在达到这一点之前,即使数据正在保存到其中,大小也不会改变。

就日志文件而言:

你问这个问题说明你对 SQL 恢复概念不太熟悉。你需要最新的恢复吗?如果发生灾难性故障,你会恢复上次完整备份还是会重新应用事务日志?

如果您无法正确管理或应用事务日志,那么解决问题的最简单方法是将数据库设置为简单恢复模式。然后,您基本上可以忘记日志文件(它将停止失控增长)。

相关内容