MSSQL Server 10 日志增长失控,每周 100GB

MSSQL Server 10 日志增长失控,每周 100GB

我最初是一名 IT 经理,我的职责涉及 MSSQL 服务器。我继承的一个数据库在一周内占用了大约 100GB 的硬盘空间(以 LDF 文件的形式)。这又占用了 C 盘上所有可用的磁盘空间,导致服务器崩溃。

因此,我可以使用 LDF 文件上的“限制文件增长”选项来阻止它使用整个驱动器吗?如果可以,那么当此文件已满时会发生什么?

另外,什么会导致这种类型的活动?这会是由于 SQL 查询写得不好吗?

答案1

检查数据库是否处于完全恢复模式。如果是,您是否有任务在运行,以便以足够频繁的时间表实际备份事务日志,从而将其保持在可管理的大小?

编辑:

当文件因限制增长而满时,您的数据库将停止处理交易,因为它无处记录它们。您需要找出文件增长如此之快的原因,而不是限制文件。

答案2

如果数据库非常繁忙(并且非常庞大),那么每周 100GB 的日志量可能不算过分。如果没有更多关于数据库大小、交易量、记录大小等的信息,我们很难判断。

更重要的问题是:如果这个数据库每晚都要备份,为什么不修剪日志?通常情况下,我们不需要担心事务日志的容量每个星期

背景信息:

  1. 在正确配置的 MSSQL 服务器上,事务日志与数据在物理上是分开的:它们不仅驻留在单独的卷上,而且驻留在完全单独的 RAID 阵列上。
  2. 如果数据库(或存储数据库的物理卷)丢失,您可以从最近的备份中恢复,然后重播事务日志可以恢复故障发生时刻的数据。
  3. 创建的任何交易日志条目您最近的备份可以是修剪来自 LDF 文件。通常,日志本身会在被修剪之前进行备份;如果保留了较旧的备份,这就保留了恢复到最近备份之前的任意时间点的可能性。

因此,更大的问题是:这个 SQL 服务器是如何备份的?每次备份时事务日志是否都会被删减?夜间备份过程是否突然停止了?

如果前任管理员懒得使用正确的服务帐户——这种情况并不罕见——当他/她的帐户被禁用并且内置域管理员帐户密码被更改时,包括备份在内的很多事情可能都停止工作。

答案3

此外,数据和日志与 C 盘无关。在繁忙的数据库上利用 IO 是提高性能的关键。

答案4

另外,将它们移出 C 盘。该驱动器上的内存不足会导致数据库崩溃,并可能导致损坏

相关内容