Обычно я справляюсь с этим, изменяя задания (ий) Sql Agent, отвечающие за запуск / запуск агентов репликации (в зависимости от вашей топологии репликации их может быть множество в потенциально разных местах). Просто добавьте шаг задания в соответствующее задание (я) агента (т. Е. Агент чтения журнала, агент распространения, агент слияния, агент очереди и т. Д.) После шага «запустить агент», который выполняется, если / когда этот шаг завершается / завершается неудачей ( в зависимости от того, используете ли вы непрерывный график или нет).
Например, если у меня настроена однонаправленная принудительная публикация транзакций, агент распространителя будет работать. Если я подключусь к дистрибьютору и обнаружу, что задание Sql Agent отвечает за запуск агента распространителя для этой публикации, я могу изменить задание и добавить шаг для отправки электронного письма определенной группе, если шаг «Запустить агент» завершается неудачно / завершается. Если я использую расписание непрерывной репликации, я просто добавлю этот шаг в электронное письмо, если шаг «запустите агент» завершится (так как я хочу получать уведомление, если агент останавливается по какой-либо причине). Если я использую непостоянное расписание, я могу вместо этого выполнить шаг электронной почты только в случае сбоя шага «Запустить агент». Вы даже можете настроить этот шаг «электронной почты» для отправки электронной почты, сделать небольшую паузу, а затем попытаться перезапустить агент автоматически (просто настроив шаг «перейти к шагу 1» в случае успеха).
Вот снимок экрана, на котором показано, как выглядят этапы работы для агента распространения, настроенного, как я обрисовал выше:
На приведенном выше рисунке вы заметите, что я добавил шаг под названием «Уведомить, приостановить, повторить», который будет выполняться каждый раз, когда агент останавливается (успех или неудача - это намеренно, поскольку я использую расписание непрерывной репликации). и просто хочу знать, когда агент распространения не работает по какой-либо причине). Этот шаг в основном отправляет электронное письмо определенной группе, ждет минуту или две, а затем снова запускает агента. Вы можете добавить код, чтобы делать все, что вам нравится, включая ведение журнала, перезапуск только определенного количества раз в определенный промежуток времени и т. Д. Он легко сценариев и повторяется для любого числа агентов, публикаций и т. Д. (У меня есть сценарии, чтобы обеспечить любой новый Агент репликации в топологии любого типа включает в себя этот тип конфигурации - тогда просто нужно добавить их в инструмент выпуска или запланировать выполнение, в зависимости от того, как вы развертываете в своей среде).