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

我的数据库文件看起来很可疑。 我们在生产阶段使用数据库。 而且我看到LDF文件越来越多。 而中密度纤维板文件似乎没有增长(我没有文件大小的历史来certificate这一点,但我认为这是不行的!我敢打赌!)

所以我猜可能会发生什么? 我怎么能强制合并到中密度纤维板?

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

您可以随时在sys.databases的log_reuse_wait_desc列中看到保存日志的reaosn:

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

  • 没有
  • CHECKPOINT
  • LOG_BACKUP
  • ACTIVE_BACKUP_OR_RESTORE
  • ACTIVE_TRANSACTION
  • DATABASE_MIRRORING
  • REPLICATION
  • DATABASE_SNAPSHOT_CREATION
  • LOG_SCAN
  • OTHER_TRANSIENT

有关更多信息,请参阅可能会延迟日志截断的因素 。

LDF跟踪在MDB文件上执行的所有事务,而不仅仅是实际的数据。 因此,即使您没有插入新数据(也logging更新和删除语句),日志文件仍将继续增长,直到您对相关数据库执行完全备份。 一旦完成了完整的备份,SQL就不需要将所有不活动的事务都保存到备份中,因为您只需从备份中进行恢复即可。 然后你可以缩小文件的大小。 定期备份将阻止您必须执行最后一步。

这里有一些微软知识库文章来填补你在一些确切的步骤,你可以采取。

另外,如果这是重要的数据,请阅读一些关于为什么不应该截断日志文件或执行no_log备份选项的文章。 从本质上讲,如果您还没有完成备份并执行这些function之一,那么您将丢掉可用于帮助恢复数据库的无备份数据。

SQL日志文件陷阱

为了回答你的第一个担忧:

您的数据库文件(MDF)可能仍然有可用空间,从它的初始默认大小。 数据库通常在其使用的文件内部具有可用空间。 最终,它会填满,然后你会看到它变得更大(假设你已经启用)。 直到达到这一点,即使数据正在保存,大小也不会改变。

就日志文件而言:

你问这个问题的事实告诉我,你不是很熟悉SQL恢复概念。 你需要最新的恢复? 如果您发生灾难性故障,您是要恢复最后一次完整备份还是要重新应用事务日志?

如果您无法正确pipe理或应用事务日志,则最简单的解决方法是将数据库设置为SIMPLE恢复模式。 你可以基本上忘记日志文件(它会停止生长失控)。