Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MSSQL_MAINTENANCE_PLANS 1С:Предприятие и СУБД

Настройка планов обслуживания (Maintenance Plans) для бэкапов в MSSQL

Обновлено: 26.08.2026 · Официальная документация ↗

Ошибки и проблемы при использовании встроенных графических планов обслуживания (Maintenance Plans):

  • Задание Maintenance Cleanup Task не удаляет старые файлы архивов, что приводит к переполнению диска;
  • Конфликты времени выполнения: тяжелая переиндексация совпадает по расписанию с бэкапом, блокируя работу 1С;
  • Сбои выполнения планов без информативных сообщений об ошибках в журнале SQL Agent.

1. Архитектура надежного плана обслуживания для 1С:Предприятие

Рекомендуемый регламент разделения задач обслуживания на независимые субпланы (Subplans):

  • Subplan 1 (Full Backup): Ежедневно в 02:00 (Check Database Integrity -> Backup Full -> Cleanup History -> Maintenance Cleanup);
  • Subplan 2 (Diff Backup): Каждые 4 часа в рабочее время (Backup Diff);
  • Subplan 3 (Log Backup): Каждые 10-15 минут круглосуточно (Backup Log);
  • Subplan 4 (Index Maintenance): Выходные дни (Reorganize / Rebuild Index -> Update Statistics).

2. Настройка задачи очистки старых бэкапов (Maintenance Cleanup Task)

Главная причина, почему Cleanup Task не удаляет файлы — некорректный синтаксис расширения:

  • В поле 'File extension' указывайте расширение без точки: пишите bak или trn (а не .bak);
  • Убедитесь, что включен чекбокс 'Search subfolders' при наличии вложенных папок баз данных;
  • Задайте глубину хранения (например, 7 дней или 2 недели).

3. Альтернатива: T-SQL скрипт удаления старых бэкапов

Используйте прямую системную процедуру очистки, если графический Cleanup Task работает нестабильно:

-- Удаление файлов бэкапов старше 7 дней (168 часов)
DECLARE @DeleteDate DATETIME = DATEADD(hh, -168, GETDATE());
EXECUTE master.dbo.xp_delete_file 
    0, -- 0 = файлы бэкапа, 1 = файлы отчетов
    N'E:\Backup\MSSQL\', 
    N'bak', 
    @DeleteDate, 
    1; -- 1 = включая подкаталоги
GO

4. Очистка истории в базе msdb

План обслуживания должен содержать задачу History Cleanup Task для предотвращения разрастания msdb:

DECLARE @CleanupDate DATETIME = DATEADD(dd, -30, GETDATE());
EXEC msdb.dbo.sp_delete_backuphistory @oldest_date = @CleanupDate;
EXEC msdb.dbo.sp_purge_jobhistory @oldest_date = @CleanupDate;
💡 Практика специалистов: Никогда не объединяйте бэкап и переиндексацию в один непрерывный монолитный шаг плана обслуживания. Сбой на шаге переиндексации прервет выполнение всего плана, и база останется без актуального ночного бэкапа.

Частые вопросы (FAQ)

Почему Maintenance Cleanup Task не удаляет файлы с точкой в расширении (.bak)?

Внутренняя логика SSIS-компонента Maintenance Cleanup Task автоматически добавляет точку перед переданной строкой расширения. Если указать '.bak', компонент будет искать файлы с маской '..bak' и пропустит реальные файлы.

Что лучше: встроенные Maintenance Plans или скрипты Олы Халленгрена (Ola Hallengren)?

В профессиональной среде Enterprise-уровня стандартом де-факто является бесплатное решение Олы Халленгрена (SQL Server Maintenance Solution). Оно использует чистый T-SQL, гибко обрабатывает ошибки, поддерживает умную переиндексацию по порогам фрагментации и не зависит от сбоев графического движка SSIS.

Почему задача Check Database Integrity в плане обслуживания замедляет сервер?

Потому что она запускает полный DBCC CHECKDB со всеми логическими проверками. В рабочих планах для баз более 1 ТБ рекомендуется разделять физическую проверку (PHYSICAL_ONLY) в будни и глубокую логическую проверку на выходных.

Где посмотреть детальные логи падения шагов Maintenance Plan?

В SSMS перейдите в Management -> Maintenance Plans -> кликните правой кнопкой на план -> 'View History'. Также проверьте текстовые отчеты в каталоге логирования экземпляра: C:\Program Files\Microsoft SQL Server\MSSQLXX.MSSQLSERVER\MSSQL\Log.

Полезные материалы
Рекомендуем