Чистка логов базы данных MSSQL

MS SQL - по необходимости

Вообще процесс чистки логов должен проходить планово, и следить за этим и настраивать должен профессиональный админ. Однако бывает так что на вашем казалось бы небольшом девелоперском проекте для тестов логи неожиданно превысили установленный размер и возникла следующая проблема:

Сама проблема:

The transaction log for database 'база_данных' is full due to 'LOG_BACKUP'. 

Проблему разумеется надо решать.

И вот как это делается:

Для обрезки лога используется вот эта команда:
DBCC SHRINKFILE(база_данных_log, 100);

При выполнении этой команды, LOG файл будет обрезан до 100 мегабайт.

А вот скрипт как это делать по уму:
USE база_данных;  
GO  
-- Изменяем модель восстановления базы данных на SIMPLE.  
ALTER DATABASE база_данных
SET RECOVERY SIMPLE;  
GO  
-- Обрезаем LOG файл до 1 мегабайта.  
DBCC SHRINKFILE (база_данных_log, 1);  
GO  
-- Возвращаем модель восстановления базы данных на FULL.  
ALTER DATABASE база_данных
SET RECOVERY FULL;  
GO


P.S.
Этой командой, можно посмотреть файлы базы данных и их размеры:
select * from sys.database_files;


P.P.S.
Данный метод я использую на тестовых средах, для продуктовых систем работающих 24X7X365 — подходы могут сильно отличаться.

Вот и всё!

MSSQL Log Чистка Базы данных SHRINKFILE

Оставить первый комментарий: