SQL Server 是否会删除旧的错误日志文件?

tus*_*eau 14 sql-server error-log

我知道我可以通过运行 sp_cycle_errorlog 轻松循环当前错误日志,但我想知道 SQL Server 是否会删除旧的/存档的错误日志文件。似乎无法在任何地方找到答案...

Ken*_*her 21

SQL Server Management Studio,在Object Explorer> 中Management,如果您右键单击SQL Server Logs并选择,则有一个设置Configure。您可以指定要保留的日志文件数量。一旦达到该数字,它将开始删除旧的。

在此处输入图片说明


Aar*_*and 8

重新启动 SQL Server 7 次。您将看到您仍然只有 7 个ERRORLOG*文件(取决于版本)。这是当前日志文件和 6 个最近的日志文件。

注意:如果您更改了 SQL Server 保留的错误日志数,您可能需要将 7 更改为其他内容。我相信最大值是 99。但是无论您当前的设置是什么,它最终都会回收并清除旧文件。

我对此进行了测试,如果您取消选中显示以下内容的框:

? 在回收之前限制错误日志文件的数量

...这意味着(至少对我而言)保留所有日志文件,它仍然只会保留当前错误日志文件加上 6 个备份。如果您更改了@RLF 指出的注册表项,则注册表项设置将覆盖(就好像您没有取消选中该框一样),但您仍将被限制在 6 个之间的一定数量的备份错误日志文件和 99。

所以简短的回答是:是的,在所有情况下,SQL Server 最终都会删除旧的错误日志文件。


Han*_*non 7

只要配置正确,SQL Server 就会自动回收错误日志。

请参阅http://msdn.microsoft.com/en-us/library/ms177285.aspx。我复制了以下要点:

在对象资源管理器中,展开 SQL Server 的实例,展开管理,右键单击 SQL Server 日志,然后单击配置。

在“配置 SQL Server 错误日志”对话框中,从以下选项中进行选择。

  • 在回收之前限制错误日志文件的数量

    • 检查以限制在回收之前创建的错误日志的数量。每次启动 SQL Server 实例时都会创建一个新的错误日志。SQL Server 保留前六个日志的备份,除非您选中此选项,并在下面指定不同的最大错误日志文件数。
  • 错误日志文件的最大数量

    • 指定在回收之前创建的最大错误日志文件数。默认值为 6,这是 SQL Server 在回收之前保留的先前备份日志的数量。