Используя SQL Server Management Studio (SSMS), мы можем указать максимальное количество файлов sql server error log до 99 (значение по-умолчанию 6),
так же с помощью команды
sp_cycle_errorlog
Мы можем начать новый файл sql server error log. В случае начала нового файла sql server error log, если их максимальное количество было достигнуто ранее (как мы помним, по-умолчанию их 6), SQL Server удалит последний файл error log и начнёт новый.
Новые возможности:
Перечисленные возможности действительно помогают в работе, но этого недостаточно и до SQL Server 2012 мы могло довольствоваться только этим. Начиная с SQL Server 2012 у нас появилась возможность влиять и на размер sql server error log. Но данная возможность не внесена в функционал SSMS и для её активации необходимо исправлять ключи реестра, чтобы не допускать ошибки нам на помощь приходит сам SQL Server и его процедура исправления реестра xp_instance_regwrite. Давайте установим максимальный размер одного файла sql server error log в 5 Мб:
USE [master]; GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'ErrorLogSizeInKb', REG_DWORD, 5120; GO
Напоминаю, что данная возможность работает только начиная с SQL Server 2012. Эта возможность не документирована и Microsoft воспользовался этим изменив ключи реестра в SQL Server 2014:
USE [master]; GO -- Limit size of each file EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer', N'ErrorLogSizeInKb', REG_DWORD, 1024; GO -- Number of ErrorLog Files EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQLServer', N'NumErrorLogs', REG_DWORD, 8; GO
Обратите внимание, что если у вас именованный экземпляр, то ключ реестра MSSQL12.MSSQLSERVER будет иным, например MSSQL12.NewName. Аналогично и с версией SQL Server 2012. Обязательно проверяйте как устроен именно ваш реестр.