Да, вам нужно будет создать задания для любых других реплик , для которых вы бы хотели, чтобы эти конкретные задания выполнялись, если бы они были основной репликой.
Вам нужно будет создать свою собственную логику, если / когда будет выполняться каждое задание агента SQL Server . Например, хотите ли вы запускать задание, только если текущий экземпляр является основной репликой определенной группы доступности? Вы должны будете поместить это в свою работу. Он не может быть скрыт автоматически, потому что это лишило бы гибкости AlwaysOn AG. Независимо от того, хотите ли вы, чтобы они были отключены на вторичной реплике (ях), полностью зависели от вас, что эти задания делают и как / когда / если вы хотите, чтобы они выполнялись.
Помните, что вторичный сервер реплики - это не просто резервный сервер, ожидающий отработки отказа. Это может быть полнофункциональный, доступный сервер. Из-за этого любая работа без дела была бы огромной инвалидностью.
Так что, да, вам нужно будет перенести нашу работу в другие реплики и использовать некоторую логику, чтобы задание продолжало выполняться после его запуска.
Например, задания резервного копирования могут использовать функцию sys.fn_hadr_backup_is_preferred_replica , определяя, является ли текущая реплика предпочтительной для конкретной базы данных. Таким образом, вы получите информацию о настройках группы доступности для параметров резервного копирования.
Я столкнулся с похожим разочарованием в документации на Books Online, в которой говорилось: «При планировании своей работы добавьте логику, чтобы она выполнялась только на основной», но не говорите, как это сделать. Sys.fn_hadr_backup_is_preferred_replica очень хороша для заданий резервного копирования, но, похоже, нет аналогичной функции для «первичного» или чего-то еще. К счастью, вы можете получить эту информацию примерно так:
Это позволит вам узнать роль текущей базы данных.
источник