Урезание логов в SQL Server 2012Источник: windowsnotes windowsnotes
Логи транзакций в MS SQL имеют обыкновение разрастаться, что иногда может привести к окончанию места на диске. Чтобы этого не происходило, в SQL Server существует операция урезания логов (Shrink). Урезание логов производится автоматически, в зависимости от модели восстановления: • В простой модели (Simple) - после достижения контрольной точки; Но бывают ситуации, когда автоматическое урезание по каким либо причинам не производится и логи занимают все свободное место. Причем происходит это всегда неожиданно и требуется срочно освободить место. В этом случае урезание можно произвести вручную. Подобная ситуация, как правило, происходит с моделью восстановления Full, при использовании которой лог нельзя обрезать до тех пор, пока в резервную копию не попали все транзакции. Это необходимо для того, чтобы обеспечить наличие непрерывную последовательность номеров (LSN) записей в журнале. Соответственно для урезания надо либо сделать полный бэкап базы, либо (что проще и быстрее) временно перевести ее в режим Simple. Для урезания лога открываем Management Studio, выбираем нужную базу, кликаем на ней правой клавишей мыши и в открывшемся контекстном меню выбираем пункт "Properties". Переходим на вкладку "Options" и изменяем модель восстановления базы (Recovery model) на Simple. Затем в том же контекстном меню переходим в раздел Tasks -> Shrink -> Files. В поле File type выбираем Log, в поле File name указываем имя файла логов. В поле "Shrink action" выбираем "Reorganize pages before releasing unused space", задаем желаемый размер файла и жмем ОК. После завершения операции возвращаем режим восстановления базы обратно в Full. Тоже самое можно проделать из Query Analizer с помощью скрипта: USE ″Имя базы″ Это всего лишь один из способов быстрого уменьшения размера логов. Не самый красивый :), но наиболее простой и эффективный. |