У меня есть план обслуживания для резервного копирования и очистки старых данных. Он состоит из трех подпланов, каждый со своим расписанием. Могу ли я установить расписание подзадачи 2 как «после завершения подзадачи 1»?
Да, вы должны быть в состоянии, но немного окольным путем. Если вы перейдете к своему агенту SQL Server и просмотрите задания, вы заметите, что это все части вашего плана обслуживания, разбитые на отдельные задачи. Дважды щелкните по одному и перейдите в раздел «Шаги». Обратите внимание на то, что написано, что «При успехе» написано «Выйти из сообщения об успешном завершении работы?». Это можно изменить, чтобы либо выйти из отчета об успехе, либо выйти из отчета об ошибке, либо перейти к следующему шагу.
Теперь, вернувшись в раздел «Шаги» свойств задания, вы сможете добавить новый шаг. Тип для нового шага, вероятно, по умолчанию установлен на сценарий T-SQL, и это то, что мы хотим. Все параметры плана обслуживания, которые вы устанавливаете, на самом деле просто запускают T-SQL для выполнения заданий. Вы даже можете просмотреть используемый T-SQL в конструкторе MaintenancePlan, дважды щелкнув задачу, а затем щелкнув View T-SQL.
Итак, теперь вы можете видеть, что план обслуживания на самом деле только создает отдельные задания агента SQL Server и запускает сценарии T-SQL (в форме пакетов обслуживания интеграции при использовании инструмента плана обслуживания) для их выполнения. Если вы можете придумать свои собственные сценарии T-SQL для резервного копирования и очистки, вы можете запланировать их в рамках одного и того же задания и просто указать каждому заданию перейти к следующему этапу по завершении.
Я не знаю, как сделать это напрямую из конструктора MaintenancePlan, поскольку все, что у него есть, это маленький календарь, в котором вы можете установить время для выполнения задания, но немного поработав, вы можете получить план резервного копирования, запускающий так, как вы этого хотите. Создание нестандартного задания таким образом может немного отличаться от работы дизайнера, поскольку вы не используете службы интеграции, но он по-прежнему очень эффективен.
Редактировать:
На самом деле, если подумать, вы можете воспроизвести это в дизайнере, если хотите. Вместо того, чтобы создавать дополнительные подпланы, вы можете просто объединить все 3 своих подплана в один большой подплан. Таким образом, все они будут работать под одним и тем же заданием агента SQL Server, и вы можете настроить их для запуска одного за другим. Опять же, это несколько обходной способ сделать это, но каждый раз, когда вы создаете новый подплан, он рассматривает его как совершенно новую работу, которую необходимо запланировать отдельно.