Я вошел и проверил свой журнал транзакций на днях, и это было что-то сумасшедшее, как 15 ГБ. Я запустил следующий код:
USE mydb
GO
BACKUP LOG mydb WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE(mydb_log,8)
GO
Что сработало нормально, сократилось до 8 МБ ... но рассматриваемая БД - это Издатель доставки журналов, и журнал уже вернулся к размеру около 500 МБ и быстро растет.
Есть ли способ автоматизировать сокращение этого журнала, кроме создания настраиваемой задачи плана обслуживания «Выполнение задачи T-SQL» и ее подключения к задаче резервного копирования журнала? Если это лучший способ, то хорошо ... но я просто думал, что SQL Server будет иметь лучший способ справиться с этим. Я думал, что он должен был автоматически уменьшаться всякий раз, когда вы делали резервную копию журнала, но этого не происходит (возможно, из-за доставки журналов, я не знаю).
Вот мой текущий план резервного копирования:
- Полные резервные копии каждую ночь
- Резервное копирование журналов транзакций один раз в день, поздним утром (возможно, подключите журнал, сокращающийся на это ... хотя не нужно сокращаться каждый день)
Или, может быть, я просто запускаю его один раз в неделю, после того как запустил задачу полного резервного копирования? Что вы все думаете?