Как решить проблему недоступности создания планов обслуживания в MS SQL Server Management Studio (SSMS)?

Системный администратор
← На главную

Мы рассмотрим распространенную проблему, когда в MS SQL Server Management Studio (SSMS) становится недоступной опция создания планов обслуживания, и проанализируем различные пути ее решения. Эта проблема часто возникает из-за отсутствия необходимых компонентов, специфики версий SSMS или неправильной конфигурации сервера. Тем, кто ищет базовое руководство, будет полезна подробная инструкция по настройке регламентных операций MS SQL SERVER под 1С.

1. Проверка и установка компонента Business Intelligence (SSIS)

В основе проблемы с недоступностью планов обслуживания в SSMS, особенно в более новых версиях, таких как SSMS 21, часто лежит отсутствие установленных компонентов SQL Server Integration Services (SSIS). Важно понимать, что планы обслуживания создают пакеты SSIS, которые затем выполняются заданиями SQL Server Agent. Без SSIS соответствующая функциональность в SSMS будет недоступна.

Изначально, когда SSMS 21 был выпущен, поддержка SSIS и, соответственно, планов обслуживания, отсутствовала. Однако, в более поздних выпусках SSMS 21 (например, 21.2.5 и выше) функциональность SSIS и планов обслуживания была восстановлена, часто в режиме предварительного просмотра (Preview).

Для активации этой функциональности в SSMS (после обновления до версии, которая ее поддерживает) недостаточно просто обновить сам SSMS. Необходимо явно добавить компонент Business Intelligence, который включает SSIS, в вашу установку SQL Server Data Tools (SSDT) или Visual Studio. Разберем по шагам, как это сделать:

  1. Откроем установщик Visual Studio. Если у вас нет Visual Studio, возможно, потребуется запустить установщик SQL Server Data Tools (SSDT), который часто предоставляет компоненты SSIS.
  2. В установщике Visual Studio выберем опцию "Изменить" для вашей установки Visual Studio.
  3. Перейдем на вкладку "Отдельные компоненты" или "Рабочие нагрузки" (в зависимости от версии Visual Studio).
  4. Найдем раздел, связанный с SQL Server или аналитикой. Убедимся, что установлен компонент "SQL Server Integration Services" (SSIS). Этот компонент может быть частью более широкого компонента "Business Intelligence" или "SQL Server Data Tools".
  5. После успешной установки компонента необходимо перезапустить SSMS, чтобы изменения вступили в силу.

После выполнения этих шагов опция создания планов обслуживания должна стать доступной в SQL Server Management Studio.

2. Использование совместимой версии SSMS (например, SSMS 20.2)

В некоторых случаях, особенно если мы используем SSMS 21 или другие предварительные версии, проблема может заключаться в отсутствии полноценной поддержки планов обслуживания в самой версии SSMS. Как было упомянуто, SSMS 21 изначально не поддерживал создание или редактирование планов обслуживания.

Если обновление SSMS 21 или установка компонентов SSIS не решает проблему, или если мы работаем с ранней версией SSMS 21, где эта функциональность гарантированно отсутствует, мы можем рассмотреть следующий подход:

Установка и использование SSMS 20.2:

  1. Загрузим и установим SSMS 20.2 или другую предыдущую стабильную версию, в которой мы знаем, что функциональность планов обслуживания поддерживается.
  2. Используем эту версию SSMS для создания или изменения планов обслуживания.

Этот метод является эффективным временным решением, пока не будет выпущена полностью функциональная версия SSMS 21 (или выше) с полной поддержкой планов обслуживания. Важно понимать, что это может потребовать наличия нескольких версий SSMS на одном компьютере.

Также стоит помнить, что при использовании предварительных версий SQL Server (например, SQL Server 2025 CTP), функциональность мастера планов обслуживания может быть недоступна, и это является известным ограничением предварительных версий.

3. Активация расширенных хранимых процедур SQL Server Agent (Agent XPs)

Даже если компоненты SSIS установлены и используется совместимая версия SSMS, планы обслуживания могут быть недоступны, если отключены расширенные хранимые процедуры SQL Server Agent (Agent XPs). Эти процедуры критически важны для работы SQL Server Agent, который, в свою очередь, управляет выполнением планов обслуживания.

Если опция Agent XPs отключена (установлено значение 0), SQL Server Agent может не отображаться в SQL Server Management Studio, и мы не сможем создавать планы обслуживания или задания SQL. Для активации Agent XPs нам необходимо выполнить следующие команды T-SQL:

  1. Подключимся к экземпляру ядра СУБД из Microsoft SQL Server Management Studio.
  2. Выберите "Создать запрос" в меню или нажмите Ctrl+N.
  3. Скопируем и вставим следующий пример в окно запроса и нажмем кнопку "Выполнить":

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Agent XPs', 1;
GO
RECONFIGURE;
GO

Разберем эти команды подробнее:

После выполнения этих команд и перезапуска SSMS (а иногда и службы SQL Server Agent) возможность создавать планы обслуживания должна появиться.

Важно: Убедимся, что служба SQL Server Agent запущена. Это можно проверить через SQL Server Configuration Manager. Рекомендуется установить тип запуска службы SQL Server Agent на "Автоматически" для обеспечения ее постоянной работы.

4. Коррекция имени сервера в учетных записях Logins

Иногда, даже если планы обслуживания созданы, они могут не выполняться, выдавая ошибки, связанные с учетными записями. Один из распространенных сценариев — ошибка "Не удалось завершить задание. Не удалось определить, есть ли у владельца задания Backup.Subplan_1 доступ к серверу (причина: Не удалось получить сведения о пользователе или группе Windows NT "XYZ", код ошибки: 0x534. [SQLSTATE 42000] (Ошибка 15404))".

Эта проблема часто возникает, если имя сервера было изменено уже после установки SQL Server, а учетные записи в разделе "Security / Logins" не были соответствующим образом обновлены. SQL Server пытается разрешить старое имя сервера, что приводит к ошибке.

Для исправления этой проблемы выполним следующие шаги:

  1. Откроем SQL Server Management Studio и подключимся к нашему экземпляру SQL Server.
  2. В обозревателе объектов развернем раздел "Security" (Безопасность), затем "Logins" (Имена для входа).
  3. Найдем учетную запись, которая является владельцем проблемного задания или которая используется для входа в систему (например, учетная запись администратора, под которой был установлен SQL Server, часто в формате DOMAIN\Username или COMPUTERNAME\Username).
  4. Откроем свойства этой учетной записи, кликнув по ней правой кнопкой мыши и выбрав "Properties" (Свойства).
  5. В поле "Login name" (Имя для входа) или других полях, где фигурирует имя сервера, изменим старое имя сервера на новое. Например, если у вас было Desktop xyz\Администратор, но позже вы переименовали сервер на Serv1C, тогда необходимо изменить имя входа на Serv1C\Администратор.
  6. Нажмем "OK" для сохранения изменений.

После этих изменений задания планов обслуживания должны начать выполняться без ошибок, связанных с разрешением учетных записей.

Дополнительные аспекты и лучшие практики

Помимо перечисленных решений, важно учитывать следующие моменты для успешной работы с планами обслуживания:

  1. Права доступа: Убедимся, что пользователь, пытающийся создать или управлять планами обслуживания, является членом предопределенной роли сервера sysadmin. Это обеспечивает необходимые разрешения для выполнения всех операций, связанных с SQL Server Agent и пакетами SSIS.
  2. Проверка папки "Maintenance Plans": В обозревателе объектов SSMS развернем узел "SQL Server Agent", а затем "Maintenance Plans". Если папка пуста, это указывает на отсутствие созданных планов, но не обязательно на отсутствие функциональности.
  3. Альтернативы планам обслуживания: Хотя планы обслуживания удобны для базовых задач, многие администраторы предпочитают использовать MaintenanceSolution от Ola Hallengren с доработанной IndexOptimize, которая обеспечивает более тонкий контроль. Также для оптимизации баз данных часто применяется адаптивное обновление индексов MS SQL, что позволяет избежать лишней нагрузки на сервер — поможет мониторинг производительности и выявление долгих запросов в 1С.
  4. Издание SQL Server Express: Издания SQL Server Express не включают SQL Server Agent. В таких случаях для автоматизации задач можно использовать приложение для быстрого выполнения бэкапов через MS SQL, которое помогает ускорить процессы архивации.
  5. Структурирование планов: Для повышения эффективности рекомендуется создавать отдельные подпланы. Например:
  6. Логирование и контроль: Регулярно проверяйте системные логи в базе msdb. Для оперативного мониторинга отлично подойдет SQL Backup Inspector TG — скрипт для контроля состояния бэкапов с уведомлениями в Telegram.

Следуя этим рекомендациям и пошаговым инструкциям, мы сможем успешно настроить и использовать планы обслуживания для эффективного управления нашими базами данных MS SQL Server, обеспечивая их стабильность и производительность.

← На главную