🗄 Как сжать журнал транзакций в SQL Server?

Пересматривал трекер срочных задач за год. Самая частая жалоба от малого бизнеса на проблемы с базой данных это переполненный лог транзакций. На жестком диске закончилось место и выскакивает ошибка: Журнал транзакций для базы данных ИмяБД заполнен.

Быстрое решение проблемы: Шринк лога транзакций и диск освобождается. Уменьшается лог легко - через MS SQL SERVER Managment Studio:

1️⃣ Установить модель восстановления: Простая(Simple). Откройте SSMS и подключитесь к вашему экземпляру SQL Server. Найдите нужную базу данных в списке. Нажмите на неё правой кнопкой мыши → выберите Свойства(Properties). В левом меню перейдите в раздел Параметры(Options). Найдите четвёртый пункт сверху — Модель восстановления(Recovery model). Из выпадающего списка выберите: Простая(Simple). Нажмите OK. Простая модель не поддерживает резервное копирование журнала — значит, SQL Server будет автоматически помечать ненужные части лога как доступные для переиспользования.

2️⃣ Выполнить сжатие(shrink) лога транзакций. Теперь нужно физически уменьшить файл журнала. Пространство внутри него уже освободилось, но сам файл остаётся огромным — сожмём его. Снова нажмите правой кнопкой на вашей БД. Выберите Задачи(Tasks) → Сжать(Shrink) → Файлы(Files). В открывшемся окне установите: Тип файла (File type) → Журнал(Log).

В блоке: Операция сжатия (Shrink action) выберите: Реорганизовать страницы перед освобождением неиспользуемого места(Reorganize pages before releasing unused space). Поставьте галочку или укажите значение в поле: Сжать файл до(Shrink file to) — задайте приемлемый размер, например 500 МБ или 1 ГБ (ориентируйтесь на реальные потребности системы). Нажмите OK. Через несколько секунд лог-файл уменьшится до указанного размера. Не стремитесь сжать его в ноль — оставьте хотя бы 200–500 МБ для нормальной работы.

3️⃣ Если вам нужно, то вернуть модель восстановления: Полная(Full). После того как журнал уменьшен, можно восстановить стандартный режим работы, чтобы не потерять информацию при сбое. Правой кнопкой на базе → Свойства(Properties) → Параметры(Options). Вновь найдите пункт: Модель восстановления. Выберите: Полная(Full). Нажмите OK. И сделайте полный бэкап!

Советы: 🔘После возврата к полной модели сразу же настройте регулярное резервное копирование журнала. Иначе лог снова начнёт бесконтрольно расти. Если проблема часто повторяется - автоматизируйте процесс: настройте задание, которое делает резервное копирование журнала транзакций по расписанию. 🔘Если нет требований по восстановлению БД на любой момент времени, то лучше оставить Простую модель и обязательно настроить бэкапы.

Подписаться: TG / Голосовать | MAX

#Практика1С #Лайфхак1Снику


В этом посте были ссылки, но мы их удалили по правилам Сетки

🗄 Как сжать журнал транзакций в SQL Server?
Пересматривал трекер срочных задач за год. Самая частая жалоба от малого бизнеса на проблемы с базой данных это переполненный лог транзакций | Сетка — социальная сеть от hh.ru