Урізання (shrink) логів в sql server 2018

Завжди логи транзакцій в MS SQL ростуть, що може спричинити за собою серйозні проблеми у вигляді нестачі місця на диску. Щоб цього уникнути, в MS SQL Server існує операція скорочення і розміру файлів даних і файлів журналу логів (Shrink). Урізання логів проводиться автоматично, в залежності від моделі відновлення:

• У простій моделі (Simple) - після досягнення контрольної точки;
• У моделі повного відновлення (Full) - після створення backup логів, за умови що з часу попереднього backup була досягнута контрольна точка.

Але бувають ситуації, коли автоматичне урізання з якихось причин не проводиться і логи займають все вільне місце. Причому відбувається це завжди несподівано і потрібно терміново звільнити місце. В цьому випадку урізання можна зробити вручну.

Для урізання балки відкриваємо Management Studio, вибираємо потрібну базу, натискаємо на ній правою клавішею миші і в контекстному меню вибираємо пункт «Properties». Переходимо на вкладку «Options» і змінюємо модель відновлення бази (Recovery model) на Simple.

Урізання (shrink) логів в sql server 2012
У тому ж контекстному меню переходимо в розділ Tasks (Завдання) -> Shrink (Обрізка) -> Files (Файли). В поле File type (Тип файлу) вибираємо Log, в поле File name (ім'я файлу) вказуємо ім'я файлу логів. В поле «Shrink action» вибираємо «Reorganize pages before releasing unused space» (Реорганізувати сторінки, перед тим як звільнити простір, який), задаємо бажаний розмір файлу і тиснемо ОК.
Урізання (shrink) логів в sql server 2012

Після завершення операції повертаємо режим відновлення бази назад в Full.

Теж саме можна зробити з Query Analizer за допомогою скрипта:

USE "Ім'я бази"
ALTER DATABASE "Ім'я бази" SET RECOVERY SIMPLE
DBCC SHRINKFILE ( "Файл лога", "Бажаний розмір");
ALTER DATABASE "Ім'я бази" SET RECOVERY FULL

Схожі статті