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


12

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

Answers:


19

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

在此处输入图片说明


8

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

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

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

☐限制错误日志文件的数量,然后再回收

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

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


7

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

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

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

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

  • 限制错误日志文件的数量,然后将其回收

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

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

2

是的,有一个配置可以维护多少个错误日志。

可以在注册表项中找到它:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs

您可能需要添加此密钥。


1
请注意,MSSQLServer如果第一个实例是命名实例,则需要用实例ID 替换它(例如,MSSQL12.SQL2014对于我的2014年命名实例,名为SQL2014)。
亚伦·伯特兰
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.