Блог did5.ru

Про АйТи и около айтишные темы

Как уменьшить размер лог файла базы данных SharePoint 2013

Комментариев нет

Все началось с того, что перестал работать backup фермы SharePoint 2013. На этом моменте я завис на какое-то время, не мог понять в чем же причина. Скрипты в планировщике не менялись, задания планировщика запускаются, но резервное копирование не выполняется. В логах была ошибка, что на диске не хватает свободного места. Места на дисках было достаточно, поэтому я списал на привередливость SharePoint, которому нужно всегда свободного места с запасом.

Причина стала явной только после ручного запуска резервного копирования фермы SharePoint 2013. Где в сообщении был указан примерный размер резервной копии – 103 гигабайта! Хотя, все предыдущие бэкапы занимали не более 30 гигов.

sharepoint backup error 1 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Первая мысль была, что злы пользователи залили на портал 70 гигов данных, которые придется как-то выявлять и удалять. Пошел на SQL сервер смотреть размер баз данных.

Оказалось, что я зря грешил на пользователей – они не виноваты. Такой большой объем заняли лог-файлы двух баз данных — SharePoint_Config и WSS_Content_Portal. В сумме эти два лог-файла заняли почти 90 гигабайт!

sharepoint reduce sql db log size 1 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Так дело не пойдет, место надо освободить. Для этого запускаем SQL Server Management Studio на SQL сервере.

sharepoint reduce sql db log size 2 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Раскрываем список баз данных, выбираем первую базу с большим логом, щелкаем по названию этой базы правой кнопкой мыши, и в контекстном меню выбираем Tasks –> Shrink –> Files.

sharepoint reduce sql db log size 3 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

В открывшемся окне проверяем, чтобы был выставлен параметр Release unused space, жмем ОК.

sharepoint reduce sql db log size 4 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Проверяем размер лог-файла базы данных. Если он не изменился, а у меня он не изменился, то переходим к следующим пунктам.

Сделаем резервную копию лог-файла базы данных. Для этого жмем кнопку New Query и вводим следубщую команду:

BACKUP LOG [SharePoint_Config] TO DISK='E:\Backup.bak'
GO

где SharePoint_Config — это имя базы данных, у которой уж слишком большой лог-файл. Указываем путь, куда будет сохранена резервная копия. На диске должно быть достаточно свободного места. И жмем кнопку Execute.

sharepoint reduce sql db log size 5 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Резервное копирование у меня закончилось ошибкой:

Msg 3201, Level 16, State 1, Line 1
Cannot open backup device 'E:\Backup.bak'. Operating system error 5(Access is denied.).
Msg 3013, Level 16, State 1, Line 1
BACKUP LOG is terminating abnormally.

Причиной было отсутсвие прав на запись на диск E:\ у учетной записи, под которой работает SQL Server. В моей случае это domain\shpsql. Узнать это можно в списке служб Windows.

sharepoint reduce sql db log size 6 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Дал права доступа на изменение (Modify) учетке domain\shpsql на диск E:\ и снова нажал кнопку Execute. Во второй раз резервное копирование выполнилось без ошибок (скриншот уже от второй базы данных).

sharepoint reduce sql db log size 7 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Получил два файла бэкапа на 82 гигабайта в сумме.

sharepoint reduce sql db log size 8 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Далее меняем Recovery model в свойствах базы данных с Full на Simple.

sharepoint reduce sql db log size 9 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Создаем новый запрос (кнопка New Query) и вводим следующую команду:

DBCC SHRINKFILE('WSS_Content_Portal_log',50)

где WSS_Content_Portal_log – название лог-файла соответсвующей базы SharePoint_Config_log.ldf. Цифра 50 означает размер лог-файла в мегабайтах. Для успешного выполнения команды у учетной записи, под которой зашли на сервер, должна быть роль sysadmin. Жмем Execute.
На скриншоте снизу показан результат успешного выполнения команды.

sharepoint reduce sql db log size 10 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Возвращаем Recovery model базы данных в Full (можно сделать и через UI – разницы нет).

sharepoint reduce sql db log size 11 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

В результате лог-файлы стали по 50 мегабайт.

sharepoint reduce sql db log size 12 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

А резервная копия стала нормального размера.

sharepoint reduce sql db log size 13 thumb Как уменьшить размер лог файла базы данных SharePoint 2013

Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!


Хотите поблагодарить автора за эту заметку? Вы можете это сделать!


Автор: did5

20 Фев 2016 в 12:10

Рубрика: Sharepoint

Метки: ,

Ваш отзыв