SharePoint Server 2013 – Уменьшаем размер базы данных WSS_UsageApplication

imageЧерез некоторое время эксплуатации SharePoint Server 2013 можно заметить значительное увеличение размера файла данных БД WSS_UsageApplication. В эту БД собираются данные об использовании разных компонент SharePoint, и в зависимости от увеличения интенсивности их использования, рост базы будет неизбежен, что само по себе в некоторых ситуациях может оказаться неприятным сюрпризом.

image

Посмотрим на то, как можно повлиять на данную ситуацию.

Изменением состава логируемых компонент можно управлять на веб-узле Центра администрирования (Central Administration > Monitoring > Configure usage and health data collection)

image

Здесь можно включить или выключить как полностью весь сбор данных, так и отдельно взятых компонент… 

image

 

Если по каким-то причинам нет желания полностью отключать сбор данных, то можно подумать о том, как уменьшить объём собираемых данных. Например можно проанализировать то, какого рода данных больше всего попадает в БД WSS_UsageApplication. Для этого можно воспользоваться встроенным функционалом отчётности SQL Management Studio.

Откроем контекстное меню на базе данных и выберем пункты Reports > Standard Reports > Disk Usage by Top Tables

image

 

Как видим, в нашем примере больший объём данных составляют записи TaskUsage

image

Откроем на веб-сервере SharePoint 2013 Management Shell и посмотрим настройку периода хранения собранных событий разного типа.. 

Get-SPUsageDefinition | Format-Table –AutoSize

image

Как видим, для интересующего нас типа событий, впрочем как и для всех остальных, период хранения собранных данных по-умолчанию составляет 14 дней. Соответственно, чтобы снизить объём хранимых данных, мы можем уменьшить количество дней хранения для отдельного типа событий:

Set-SPUsageDefinition -Identity "Task Use" -DaysRetained 3

image

При желании сократить количество дней хранения для всех типов событий используем команду:

Get-SPUsageDefinition | ForEach-Object { Set-SPUsageDefinition $_ –DaysRetained 3}

Теперь, чтобы задействовать изменения конфигурации, запустим стандартную задачу обработки данных сбора, которая усечёт все события старше заданного нами количества дней. Сделать это можно на веб-узле Центра администрирования (Central Administration > Monitoring > Configure usage and health data collection > Log Collection Schedule)

image

 

В списке заданий обработки событий использования откроем задание Microsoft SharePoint Foundation Usage Data Import и выполним его запуск… 

image

image

Успешность выполнения задания можно проверить по ссылке Job History

image

 

Аналогичную процедуру можно проделать и с помощью SharePoint 2013 Management Shell :

Get-SPTimerJob | Where-Object { $_.title -eq "Microsoft SharePoint Foundation Usage Data Import" } | Start-SPTimerJob

image

Хотя, учитывая установленный по-умолчанию интервал выполнения задания в 5 минут, позволяет и не выполнять данный шаг, а просто немного подождать, когда задание выполниться автоматически по расписанию.

В результате при последующей попытке сокращения неиспользуемого места базы данных с помощью Shrink Database, мы должны увидеть значительный объём, доступный к сжатию.

image

image

Источники информации:

Только один комментарий Комментировать

  1. Алексей Максимов / Автор записи

    Справедливо для SharePoint Server 2016/2019 с оговоркой на то, что при указании RetentionPeriod нужно учитывать, что значение не должно быть меньше, чем DaysToKeepDetailedData.
    Например, чтобы установить период в 3 дня (по умолчанию 7 дней):

    Get-SPUsageDefinition | ForEach-Object { Set-SPUsageDefinition $_ -DaysRetained 3 -DaysToKeepUsageFiles 3 }

Добавить комментарий