Как остановить SQL Server от записи информационных строк в файлы журнала SQLFT?

Недавно я проверил экземпляр SQL Server 2012 только для того, чтобы убедиться, что жесткий диск заполнен, и после исследования произошедшего это были информационные строки Полнотекстового поиска, заполняющие файлы журнала и дисковое пространство каждую минуту. Он добавил до нескольких ГБ информации журнала, как в следующей строке:

2015-01-26 14:08:58.40 spid42s     Informational: Resuming full-text population for table or indexed view '[db].[dbo].[table]' in database 'db' (table or indexed view ID '690817523', database ID '5'). Prior number of documents processed: 0, error encountered: 0.

У меня вопрос: как запретить SQL Server записывать какие-либо "информационные" подробности в свои файлы журналов с помощью полнотекстового поискового движка или, как вариант (менее предпочтительный метод), как полностью отключить ведение журнала?

1 ответ

Если вы не можете перезапустить экземпляр, вы можете запланировать очистку журнала с помощью sp_fulltext_recycle_crawl_log. Дополнительная информация: http://www.ruben-j.com/microsoft/t-sql/sql-fulltext-crawl-log/ или https://social.msdn.microsoft.com/Forums/windowsapps/en-US/b9420843-666e-4f33-b987-2624cdfa7acd/sql-server-2008r2-fulltext-logfile-sqlftlog-maintenance?forum=sqlkjmanageability или задайте вопрос в dba.stackexchange.

В конце концов, решение заключалось в том, чтобы добавить в планировщик задач простой однострочный сценарий PowerShell, который будет очищать журналы SQL Server старше 30 дней, выполняемый каждый день:

Get-ChildItem "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log\*" -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item

Измените MSSQL11.MSSQLSERVER, чтобы он соответствовал вашей версии SQL Server и имени экземпляра.

Другие вопросы по тегам