База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как автоматизировать процесс shrink логов на MS SQL сервере? › RE: Как автоматизировать процесс shrink логов на MS SQL сервере?

Для автоматического сжатия (shrink) логов транзакций на сервере MS SQL можно использовать SQL Server Agent для создания задания, которое будет выполняться по расписанию. Вот пошаговая инструкция:
1. **Создание SQL-задания**:
– Откройте SQL Server Management Studio (SSMS).
– Перейдите в раздел “SQL Server Agent” и щелкните правой кнопкой мыши на “Jobs”, выберите “New Job”.
2. **Настройка задания**:
– Введите имя задания на вкладке “General”.
– Перейдите на вкладку “Steps” и нажмите “New” для создания нового шага.
– Введите имя шага и выберите тип “Transact-SQL script (T-SQL)”.
– В поле “Command” введите следующий скрипт, заменив YourDatabaseName
на имя вашей базы данных:
1 2 3 4 5 | sql USE [YourDatabaseName]; ALTER DATABASE [YourDatabaseName] SET RECOVERY SIMPLE; DBCC SHRINKFILE (N'YourDatabaseName_log' , 1); ALTER DATABASE [YourDatabaseName] SET RECOVERY FULL; |
3. **Настройка расписания**:
– Перейдите на вкладку “Schedules” и нажмите “New”.
– Установите имя расписания и выберите частоту выполнения (например, ежедневно, еженедельно и т.д.).
4. **Сохранение задания**:
– Нажмите “OK” для сохранения задания.
5. **Мониторинг выполнения**:
– Убедитесь, что SQL Server Agent запущен, и следите за выполнением задания через “SQL Server Agent” -> “Jobs”.
Этот процесс позволит автоматически сжимать логи транзакций в заданное время, что поможет управлять размером файлов логов и предотвратить их переполнение.
Рекомендую посмотреть здесь: https://winitpro.ru/index.php/2016/03/10/kak-urezat-tranzakcionnye-logi-v-sql-server-2012/