ДС
Сообщество Базы данных и СУБД Как правильно сжать журнал транзакций MS SQL

Как правильно сжать журнал транзакций MS SQL?

АС
Алексей С.
Сегодня, 10:15
MS SQL Администрирование

Инфо по настройкам базы 1С (MS SQL):

  • Модель восстановления базы 1С SQL установлена Полная.
  • Резервная копия базы 1С SQL делается ежедневно в нерабочее время (тип архивной копии = Полная).
  • Резервная копия журнал транзакций базы 1С SQL не делается.

Файл журнала транзакций базы 1С SQL стал занимать много места на диске. Необходимо уменьшить файл журнала. Пож-та, подскажите, как сделать это корректно и правильно.


Дополнение: база 1С размещена на MS SQL 2019. Предполагаю выполнить следующие шаги (через интерфейс SSMS):

  1. Переключить модель восстановления базы 1С SQL на Простая.
  2. Выполнить Сжатие журнала транзакций базы 1С SQL. Тут вопрос с какими опциями (Освободить, Реорганизовать + Сжать до или Очистить)?
  3. Переключить модель восстановления на Полная.
  4. Установить ограничение размера на файл журнала транзакций. Какой размер поставить?

Обсуждение (7)

DB
DBA_Expert Сегодня, 10:42
Добрый день! Правильно будет по скрипту. Тогда вам не придется контролировать и делать сжатие журнала когда уже диск заполнился и база встала.
USE base
ALTER DATABASE base SET RECOVERY SIMPLE
go
DBCC SHRINKFILE (base_log, 500)
ALTER DATABASE base SET RECOVERY FULL
go
Если же вас интересует разовая акция, тогда путь такой: Задачи-Сжать-Файлы. Тип файла: Журнал, галка Освободить неиспользуемое место. Иногда эта галка даёт зависание и тогда можно поставить Сжать до 500.
Алексей С. Автор Сегодня, 11:05
Спасибо за ответ, подскажите ещё: не приведёт ли сжатие журнала с опцией "Освободить неиспользуемое место" или с опцией "Реорганизовать страницы + Сжать до 500 Мб" к падению производительности самой базы? А не лучше сначала переключить модель на Простая, затем выполнить Сжатие, затем обратно на Полная?
ИП
Иван Петров Сегодня, 11:30
Если не хотите, чтобы журнал транзакций бесконтрольно разрастался в модели восстановления базы ПОЛНАЯ - надо регулярно делать его резервные копии. При этом журнал будет очищаться. Можно изменить модель восстановления на ПРОСТАЯ. Тогда журнал не будет разрастаться, но потеряется возможность восстановить базу из резервной копии на заданный момент времени в прошлом.
Алексей С. Автор Сегодня, 11:45
- если сделать резервную копию журнала, то размер файла самого журнала уменьшится автоматически или его надо будет дополнительно уменьшать сжатием? - если мы ежедневно делаем полный архив базы, то мы сможем восстановить базу из архива без журнала (чистый журнал или самого файла нет)?
Алексей С. Автор Сегодня, 13:20
Дополнение: сделали резервную копию журнала, размер файла журнала не изменился. Затем сделали сжатие с опцией "Освободить неиспользуемое место" - размер снова не изменился (доступно 99%). Как правильно уменьшить размер файла после бэкапа?
ИП
Иван Петров Сегодня, 14:10
В таком случае зачем вообще использовать полную модель восстановления? Используйте простую и сжимайте лог регламентным заданием.
Алексей С. Автор Сегодня, 14:35
Полную модель поставили на всякий случай, вдруг нужно будет восстанавливать на конкретный момент времени. Но со временем журнал вырос и сейчас в 20 раз больше базы. Можно ли как-то настроить через интерфейс SSMS ограничение журнала, чтобы он не рос, но в нём всегда были транзакции за последние 3 месяца? В свойствах файлов можно поставить макс. размер, но что произойдёт с базой при его достижении?