Поделиться через


Задания обработки эластичных баз данных в Базе данных SQL Azure

Применимо к: База данных SQL Azure

В этой статье рассматриваются возможности и подробные сведения об эластичных заданиях для базы данных SQL Azure.

Обзор эластичных заданий

Вы можете создавать и планировать эластичные задания, которые периодически выполняются в одной или нескольких базах данных SQL Azure. Задания выполняют запросы Transact-SQL (T-SQL) и выполняют задачи обслуживания.

Вы можете определить целевые базы данных или группы баз данных, где выполняется задание. Можно также определить расписания выполнения задания. Все даты и время в эластичных заданиях находятся в часовом поясе UTC.

Задание обрабатывает задачу проверки подлинности в целевой базе данных. Вы также определяете, поддерживаете и сохраняете Transact-SQL скрипты для выполнения в группе баз данных.

Каждое задание регистрирует состояние выполнения и автоматически повторяет операции при возникновении сбоя.

В каких случаях следует использовать эластичные задания

Используйте автоматизацию эластичных заданий в следующих сценариях:

  • Автоматизируйте задачи управления и запланируйте их запуск каждый рабочий день или после рабочего времени.
    • Развертывание изменений схемы и управление учетными данными.
    • Сбор данных о производительности или журналов арендатора (клиента).
    • Обновление эталонных данных (например, сведений о продукте, которые являются общими для всех баз данных).
    • Загрузите данные из хранилища BLOB-объектов Azure.
  • Настройте задания для запуска в коллекции баз данных на регулярной основе, например в нерабочие часы.
    • Сбор результатов запроса из набора баз данных в центральную таблицу на постоянной основе.
    • Запросы могут постоянно выполняться и настраиваться для активации дополнительных задач.
  • Сбор данных для создания отчетов
    • Сбор данных из коллекции баз данных в одну целевую таблицу.
    • Выполнение запросов обработки данных в большом наборе баз данных, например сбор журналов клиентов. Результаты собираются в одну целевую таблицу для дальнейшего анализа.
  • Перемещение данных
    • Для кастомных разработок, бизнес-автоматизации или управления другими задачами.
    • Обработка ETL для извлечения, преобразования и загрузки данных между таблицами в базе данных.

Обратите внимание на эластичные задания, когда:

  • У вас есть задача, которая должна регулярно выполняться по расписанию, нацелив одну или несколько баз данных.

  • Задача, которая должна выполняться один раз, но в нескольких базах данных.

  • Необходимо выполнять задания для любой комбинации баз данных: одной или нескольких отдельных баз данных, всех баз данных на сервере, всех баз данных в эластичном пуле с добавленной гибкостью для включения или исключения определенной базы данных. Задания могут выполняться на нескольких серверах, в нескольких пулах и даже в базах данных в разных подписках. Серверы и пулы динамически перечисляются во время выполнения, поэтому задания выполняются во всех базах данных, имеющихся в целевой группе на момент выполнения.

    • Эта возможность является значительной разницей от агента SQL, который не может динамически перечислять целевые базы данных, особенно в сценариях клиентов SaaS, где базы данных добавляются или удаляются динамически.

Компоненты эластичных заданий

Компонент Описание
Агент масштабируемых заданий Ресурс Azure, создаваемый для запуска заданий и управления ими.
База данных заданий База данных в базе данных SQL Azure, которую агент заданий использует для хранения связанных с заданиями данных, определений заданий и т. д.
Задание Задание — это единица работы, состоящая из одного или нескольких шагов. Этапы задания указывают скрипт T-SQL для запуска и другие необходимые сведения.
Целевая группа Набор серверов, пулов и баз данных для выполнения задания.

Агент эластичных заданий

Агент эластичных заданий — это ресурс Azure для создания, запуска и управления заданиями. Вы создаете агент эластичных заданий в качестве ресурса Azure на портале (также поддерживаются создание эластичных заданий и управление ими с помощью PowerShell и REST API).

Для создания агента эластичных заданий требуется существующая база данных в База данных SQL Azure. Агент настраивает существующую базу данных Azure SQL в качестве базы данных заданий.

Можно запустить, отключить или отменить задание с помощью портал Azure. Портал Azure также позволяет просматривать определения заданий и журнал выполнения.

Стоимость агента динамических заданий

Счета за использование базы данных заданий выставляются по тем же тарифам, что и за использование любой базы данных в Базе данных SQL Azure. Стоимость агента динамических заданий фиксируется в соответствии с выбранным уровнем службы. Дополнительные сведения см. на странице цен на базу данных SQL Azure.

База данных эластичных заданий

Используйте базу данных заданий для определения заданий и отслеживания состояния и журнала выполнения заданий. Задания выполняются в целевых базах данных. База данных заданий также хранит метаданные агента, журналы, результаты и определения заданий. Он содержит множество полезных хранимых процедур и других объектов базы данных для создания, выполнения и управления заданиями с помощью T-SQL.

Для создания агента эластичных заданий требуется база данных SQL Azure. Агент заданий хранит все метаданные, связанные с заданием, в базе данных заданий, которая должна быть новой пустой базой данных SQL Azure.

Рекомендуемая цель службы базы данных заданий — DTU S1 или выше, но оптимальный выбор зависит от потребностей в производительности заданий: количество шагов задания, количество целевых объектов задания и частоту выполнения заданий.

Если операции с базой данных заданий выполняются медленнее, чем ожидалось, то производительность базы данных и использование ресурсов в базе данных заданий в периоды медленной работы нужно отслеживать с помощью портала Azure или динамического административного представления sys.dm_db_resource_stats. Если использование ресурса, например ЦП, операций ввода-вывода данных или записи журналов, приближается к 100 % и сопоставляется с периодами медленности, рассмотрите возможность постепенного масштабирования базы данных до более высоких целей службы (в модели приобретения на основе DTU или в модели приобретения виртуальных ядер) до тех пор, пока производительность базы данных заданий не будет достаточно улучшена.

Сама база данных заданий может быть целевым объектом для эластического задания. В этом сценарии следует обрабатывать базу данных заданий так же, как и любую другую целевую базу данных. Необходимо создать пользователя задания и предоставить достаточные разрешения в базе данных заданий. Учетные данные, ограниченные базой данных для пользователя задания, должны также существовать в базе данных задания, как и в любой другой целевой базе данных.

Если база данных заданий является целью задания, убедитесь, что задания не изменяют или не удаляют какие-либо метаданные агента заданий, хранящиеся в этой базе данных. Используйте только хранимые процедуры заданий или представления заданий для изменения или запроса сведений о заданиях.

Внимание

Не изменяйте существующие объекты или не создавайте новые объекты в базе данных заданий, хотя их можно прочитать из таблиц для создания отчетов и аналитики.

Задания обработки эластичных баз данных и их этапы

Задание — это единица работы, которая выполняется по расписанию или в качестве одноразового задания. Задание состоит из одного или нескольких шагов.

Каждый шаг задания задает скрипт T-SQL для запуска, одну или несколько целевых групп, против которых выполняется скрипт T-SQL, а также учетные данные, которые агент задания использует для подключения к целевой базе данных. На каждом этапе задания можно настроить время ожидания и политики повторных попыток, а также при необходимости указать выходные параметры.

Цели эластичных заданий

Эластичные задания могут выполнять один или несколько скриптов T-SQL параллельно, в большом количестве баз данных, по расписанию или по запросу. Целевой объект может быть любого уровня в Azure SQL Database.

Вы можете выполнять запланированные задания для любой комбинации баз данных: одной или нескольких отдельных баз данных, всех баз данных на сервере или всех базах данных в эластичном пуле с добавленной гибкостью для включения или исключения любой конкретной базы данных. Задания могут выполняться на нескольких серверах и нескольких пулах и даже могут выполняться с использованием баз данных в разных подписках. Серверы и пулы динамически перечисляются во время выполнения, поэтому задания выполняются во всех базах данных, имеющихся в целевой группе на момент выполнения.

На следующем изображении показан агент задания, выполняющий задания в разных типах целевых групп:

Схема агента эластичных заданий с использованием учетных данных базы данных в качестве проверки подлинности для целевого объекта.

Целевая группа

Целевая группа определяет набор баз данных, в которых выполняется шаг задания. Целевая группа может содержать любое число и сочетание следующих типов:

  • Логический SQL Server: если указать сервер, все базы данных, существующие на сервере во время выполнения задания, являются частью группы. Необходимо указать учетные master данные базы данных, чтобы группа была перечислена и обновлена перед выполнением задания. Дополнительные сведения о логических серверах см. в статье "Что такое логический сервер в База данных SQL Azure и Azure Synapse?

  • Эластичные пулы: если указать эластичные пулы, все базы данных, которые находятся в эластичном пуле во время выполнения задания, являются частью группы. Как и на сервере, необходимо указать master учетные данные базы данных, чтобы обновить группу перед выполнением задания.

  • Отдельная база данных: укажите одну или несколько отдельных баз данных, которые должны быть частью группы.

Совет

В момент выполнения задания динамическое перечисление повторно вычисляет набор баз данных в целевых группах, включающих серверы или пулы. Динамическое перечисление гарантирует, что задание выполняется во всех базах данных, существующих на сервере, или в пуле во время выполнения задания. Повторное вычисление списка баз данных во время выполнения полезно для сценариев, когда часто изменяется членство в пуле или сервере.

Пулы и отдельные базы данных могут быть включены или исключены из группы. Целевую группу можно создать с любым сочетанием баз данных. Например, вы можете добавить сервер в целевую группу, но исключить конкретные базы данных в эластичном пуле (или исключить весь пул).

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

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

Схема примеров целевой группы.

  • В примере 1 показана целевая группа, состоящая из списка отдельных баз данных. Когда шаг задания использует эту целевую группу, действие шага задания выполняется в каждой из этих баз данных.

  • В примере 2 показана целевая группа, которая содержит сервер в качестве целевого объекта. Когда шаг задания использует эту целевую группу, сервер динамически проверяется для определения списка баз данных, которые находятся на сервере в данный момент. Действие шага задания выполняется в каждой из этих баз данных.

  • В примере 3 показана такая же целевая группа, как и в примере 2, но отдельная база данных специально исключена. Действие шага задания не выполняется в исключенной базе данных.

  • В примере 4 показана целевая группа, которая содержит эластичный пул в качестве целевого объекта. Как и в примере 2, пул динамически перечисляется во время выполнения задания, чтобы определить список баз данных в пуле.

Схема примеров расширенных сценариев с правилами включения и исключения целевой группы.

  • В примерах 5 и 6 показаны расширенные сценарии, в которых серверы, эластичные пулы и базы данных могут быть объединены с использованием правил включения и исключения.

Графики динамических заданий

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

Внимание

Рекомендуется создавать расписания заданий, которые начинаются в будущем.

Расписания заданий обнаруживают пропущенные события. Если вы создаете новое расписание заданий, которое начинается в прошлом, задание выполняется немедленно при включении. Если задание отключено или иначе недоступно, задание выполняется сразу после включения или доступности.

Например, в настоящее время это 2 января 9:00(UTC). Вы настроили новое задание с запланированным временем начала сегодня вечером, 2 января, в 22:30 (UTC) и ежедневным выполнением. Задание выполняется в 10:30 (UTC).

Чтобы предотвратить случайный запуск задачи, создайте расписания, которые начинаются в будущем. В примере, который может привести к ненамеренному запуску задания, вы настроили новое задание, чтобы оно выполнялось ежедневно в 10:30 вечера по времени UTC. Вы временно отключаете задание на неделю. Затем, если вы включите задание в 8:30 утра UTC, задание выполняется немедленно, перехватив из пропущенного интервала события, которое должно было выполняться вчера вечером. После выполнения агент задания снова не запускается до следующего запланированного выполнения в 10:30 вечера UTC. Чтобы предотвратить выполнение в 8:30 UTC в этом сценарии, обновите расписание задания на 8 января в 10:30 вечера UTC, а затем активируйте задание. Или включите задание в то время, когда задание может выполняться немедленно.

Проверка подлинности

Выберите один метод для всех целевых объектов для агента эластичных заданий. Например, для одного агента эластичных заданий нельзя настроить один целевой сервер для использования учетных данных с областью базы данных и другой для использования аутентификации Microsoft Entra ID.

Агент эластичных заданий может подключаться к серверам и базам данных, указанным целевой группой, с помощью двух параметров проверки подлинности:

Аутентификация с использованием пользовательского управляемого удостоверения (UMI)

Проверка подлинности Microsoft Entra с помощью управляемого удостоверения, назначаемого пользователем (UMI), рекомендуется для подключения эластичных заданий к базе данных SQL Azure. С поддержкой идентификатора Microsoft Entra агент заданий подключается к целевым базам данных (базам данных, серверам, эластичным пулам) и выходной базе данных с помощью UMI.

Схема работы назначаемых пользователем управляемых удостоверений (UMI) с эластичными заданиями.

При необходимости можно включить проверку подлинности идентификатора Microsoft Entra на логическом сервере, который содержит базу данных эластичных заданий, для доступа к базе данных и запроса этой базы данных через подключения идентификатора Microsoft Entra ID. Однако агент заданий использует внутреннюю проверку подлинности на основе сертификатов для подключения к базе данных заданий.

Вы можете создать один UMI или использовать существующий UMI и назначить один и тот же UMI нескольким агентам заданий. Каждый агент задания поддерживает только один UMI. После того как UMI назначен агенту задания, он использует данную идентификацию для подключения и выполнения заданий T-SQL в целевых базах данных. Агент заданий не использует проверку подлинности SQL для целевого сервера или баз данных.

Имя UMI должно начинаться с буквы или числа и иметь длину от 3 до 128 символов. Он может содержать дефис (-) и символы подчеркивания (_).

Дополнительные сведения об UMI в Базе данных SQL Azure см. в статье "Управляемые удостоверения для SQL Azure", включая действия, необходимые и преимущества использования UMI в качестве логического удостоверения сервера базы данных SQL Azure. Дополнительные сведения см. в статье Microsoft Entra authentication for Azure SQL.

Внимание

При использовании проверки подлинности Идентификатора Microsoft Entra создайте jobuser пользователя из этого идентификатора Microsoft Entra в каждой целевой базе данных. Предоставьте пользователю разрешения, необходимые для выполнения заданий в каждой целевой базе данных.

Использование управляемого удостоверения, назначаемого системой (SMI), не поддерживается.

Проверка подлинности с использованием учетных данных в пределах области базы данных

Хотя проверка подлинности Microsoft Entra (ранее — Azure Active Directory) является рекомендуемым вариантом, вы можете настроить задания для использования учетных данных с областью базы данных для подключения к базам данных, указанным целевой группой во время выполнения. До октября 2023 года учетные данные в пределах области базы данных были единственным вариантом аутентификации.

Если целевая группа содержит серверы или пулы, эти учетные данные на уровне базы данных подключаются к базе данных master, чтобы перечислить доступные базы данных.

  • Создайте учетные данные, ограниченные областью базы данных, в базе данных работы.

  • Все целевые базы данных должны иметь имя входа с достаточными разрешениями для успешного выполнения задания (jobuser на следующей схеме).

  • Учетные данные, создаваемые в целевых базах данных (LOGINи PASSWORDmasteruserjobuser на следующей схеме), должны соответствовать IDENTITYSECRET учетным данным, создаваемым в базе данных заданий.

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

На следующем рисунке показано, как настроить правильные учетные данные задания и как агент эластичного задания подключается с использованием учетных данных базы данных в качестве проверки подлинности для входа и пользователей в целевых серверах и базах данных.

Схема учетных данных эластичных заданий и подключение агента эластичных заданий с использованием учетных данных базы данных в качестве проверки подлинности для входа или пользователей в целевых серверах или базах данных.

Примечание.

При использовании идентификационных данных с областью действия базы данных не забудьте создать пользователя jobuser в каждой целевой базе данных.

Частные конечные точки эластичного задания

Агент эластичных заданий поддерживает частные конечные точки эластичного задания. Создание частной конечной точки эластичных заданий устанавливает частную связь между эластичным заданием и целевым сервером. Функция приватных конечных точек эластичных заданий отличается от Azure Private Link.

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

Функция частных конечных точек эластичного задания поддерживает частные подключения к целевым и выходным серверам, поэтому агент задания может связаться с ними, даже если включен параметр "Запрет общедоступного доступа ". Использование частных конечных точек также является одним из возможных решений, если вы хотите отключить параметр Разрешить службам и ресурсам Azure доступ к этому серверу.

Частные конечные точки эластичного задания поддерживают все параметры проверки подлинности агента эластичных заданий.

Функция частной конечной точки эластичного задания позволяет выбрать управляемую службой частную конечную точку, чтобы установить безопасное подключение между агентом задания и его целевыми и выходными серверами. Частная конечная точка, управляемая службой, — это частный IP-адрес в определенной виртуальной сети и подсети. При выборе использования частных конечных точек на одном из целевых и выходных серверов агента заданий Azure создает частную конечную точку, управляемую службой. Затем эта частная конечная точка используется исключительно агентом заданий для подключения и выполнения заданий или записи выходных данных задания в этих целевых и выходных базах данных.

Вы можете создавать и настраивать частные конечные точки эластичных заданий с помощью портала Azure. Целевые серверы, подключенные через приватный канал, могут находиться в любой точке Azure, даже в разных географических регионах и подписках. Чтобы включить эту связь, необходимо создать частную конечную точку для каждого требуемого целевого сервера и выходного сервера задания.

Руководство по настройке новой управляемой службой частной конечной точки для эластичных заданий см. в статье "Настройка частной конечной точки эластичных заданий SQL Azure".

Требования к частным конечным точкам эластичного задания

  • Чтобы использовать частную конечную точку эластичных заданий, агент заданий и целевые серверы или базы данных должны размещаться в Azure (одни и те же или разные регионы), а также в одном и том же облачном типе (например, в общедоступном облаке или в облаке для государственных организаций).

  • Поставщик Microsoft.Network ресурсов должен быть зарегистрирован для подписок узла как агента заданий, так и целевых и выходных серверов.

  • Azure создает частные конечные точки для эластичных задач для целевого и выходного серверов. Их необходимо утвердить, прежде чем агент эластичных заданий сможет их использовать. Вы можете одобрить их через вкладку "Сеть" этого логического сервера или предпочтительного клиента. Затем агент эластичных заданий может получить доступ к любым базам данных под этим сервером с помощью частного подключения.

  • Подключение от агента эластичных заданий к базе данных заданий не использует частную конечную точку. Сам агент заданий использует внутреннюю проверку подлинности на основе сертификатов для подключения к базе данных заданий.

    • Если вы добавляете базу данных заданий в качестве члена целевой группы, она ведет себя как обычный целевой объект. При необходимости необходимо настроить частную конечную точку.

Разрешения на работу с эластичными заданиями в базе данных

Во время создания агента заданий в базе данных заданий создаются схема, таблицы и роль с именем jobs_reader. Роль создается с следующими разрешениями и предназначена для обеспечения более точного контроля доступа администраторов к мониторингу заданий. Администраторы могут предоставить пользователям возможность отслеживать выполнение задания, добавляя их в jobs_reader роль в базе данных заданий.

Имя роли jobs Разрешения схемы jobs_internal Разрешения схемы
jobs_reader SELECT нет

Внимание

Не обновляйте внутренние представления каталога в базе данных заданий, например jobs.target_group_members. Изменение этих представлений каталога вручную может привести к повреждению базы данных заданий и сбою. Эти представления предназначены только для запросов на чтение. Хранимые процедуры в базе данных заданий можно использовать для добавления или удаления целевых групп и членов, таких как jobs.sp_add_target_group_member.

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

Мониторинг эластичных заданий

Агент эластичных заданий интегрируется с оповещениями Azure для уведомлений о состоянии задания, упрощая решение для мониторинга состояния и истории выполнения заданий.

Портал Azure включает дополнительные функции для поддержки эластичных заданий и мониторинга заданий. На странице обзора агента эластичных заданий отображаются последние выполнения заданий, как показано на следующем снимке экрана.

Снимок экрана: страница обзора портал Azure с последними выполнениями заданий.

Вы можете создавать правила генерации оповещений Azure Monitor с помощью портал Azure, Azure CLI, PowerShell и REST API. Метрика неудачных эластичных заданий является хорошей отправной точкой для мониторинга и получения оповещений о выполнении эластичных заданий. Кроме того, вы можете выбрать оповещение с помощью настраиваемого действия, например SMS или электронной почты в средстве оповещения Azure. Дополнительные сведения см. в разделе "Создание оповещений для Azure SQL Database" в портале Azure.

Пример см. в разделе "Создание, настройка и управление эластичными заданиями".

Выходные данные заданий

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

История заданий

Журнал выполнения эластичных заданий можно просмотреть в базе данных заданий, выполняя запрос к таблице jobs.job_executions. Задание очистки системы удаляет историю выполнения, которая старше 45 дней. Чтобы вручную удалить журнал, который был создан менее 45 дней назад, выполните sp_purge_jobhistory хранимую процедуру в базе данных заданий.

Состояние задания

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

Лучшие практики

При работе с заданиями эластичной базы данных рассмотрите следующие рекомендации.

Рекомендации по обеспечению безопасности

  • Предоставляйте доступ к API-интерфейсам только доверенным лицам.

  • Предоставьте доступ с минимально необходимыми привилегиями для выполнения этапа задачи. Дополнительные сведения см. в статье Авторизация и разрешения.

  • При использовании члена целевой группы сервера или пула создайте отдельные учетные данные с правами в master базе данных для просмотра и перечисления баз данных. Эти учетные данные расширяют списки баз данных серверов и пулов перед выполнением задания.

Производительность эластичного задания

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

В зависимости от размера целевой группы баз данных и требуемого времени выполнения для задания (число параллельных рабочих ролей), агенту требуется разные объемы вычислений и производительности базы данных заданий (чем больше целевых объектов, тем выше количество необходимых вычислений).

Одновременные уровни емкости

Начиная с октября 2023 года, агент управления эластичными заданиями имеет несколько уровней производительности, позволяющих увеличить вместимость.

Инкременты мощности указывают общее количество целевых баз данных, к которым агент заданий может подключиться и на которых может запустить задание одновременно. Чтобы получить больше параллельных целевых подключений для выполнения задания, обновите уровень агента задания с уровня JA100 по умолчанию, который имеет ограничение в 100 одновременных целевых подключений.

Большинство сред требуют менее 100 параллельных заданий в любое время, поэтому JA100 — это значение по умолчанию.

Уровень агента эластичных заданий Максимальное число параллельных заданий
JA100 100
JA200 200
JA400 400
JA800 800

При превышении уровня параллельной мощности агента заданий с целевыми объектами это создает задержки в очереди для некоторых целевых баз данных и серверов. Например, если вы запускаете задание с 110 целевыми объектами на уровне JA100, 10 целевых объектов ожидают запуска, пока другие не завершат работу.

Вы можете изменить цель уровня или службы агента эластичных заданий с помощью портала Azure, PowerShell или REST API агентов заданий. Пример см. в разделе "Масштабирование агента задачи".

Ограничение воздействия задания на эластичные пулы

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

Задайте количество параллельно запущенных баз данных, в которых выполняется задание, задав параметр sp_add_jobstep хранимой процедуры @max_parallelism в T-SQL.

Идемпотентные сценарии

Скрипты T-SQL эластичного задания должны быть идемпотентными, т. е. если скрипт успешно выполняется и выполняется снова, происходит тот же результат. Сценарий может завершиться ошибкой из-за временных проблем с сетью. В этом случае задание автоматически повторяет выполнение скрипта предварительно заданным числом раз перед прекращением. Идемпотентный скрипт имеет тот же результат, даже если он был успешно запущен дважды (или более).

Прежде чем создавать объект, рекомендуется сначала проверить, не существует ли он уже. Ниже приведен гипотетический пример.

IF NOT EXISTS (SELECT *
               FROM sys.objects
               WHERE [name] = N'some_object')
    PRINT 'Object does not exist'; -- Create the object
ELSE
    PRINT 'Object exists'; -- If it exists, drop the object before recreating it.

Аналогично, сценарий должен успешно выполняться, логически проверяя и устраняя любые условия, которые он обнаруживает.

Ограничения

Это текущие ограничения для службы Elastic Jobs. Команда по продукту активно работает над удалением как можно больше этих ограничений.

Проблема Описание
Агента эластичных заданий необходимо повторно создать и запустить в новом регионе после аварийного переключения или при перемещении в новый регион Azure. Служба эластичных заданий хранит все свои агенты заданий и метаданные задания в базе данных заданий. Отработка отказа или перемещение ресурсов Azure в новый регион Azure также перемещает базу данных заданий, агент заданий и метаданные задания в новый регион Azure. Однако агент эластичных заданий — это ресурс только для вычислений, который должен быть явно создан и запущен в новом регионе, прежде чем задания начнут выполняться снова. После запуска агент эластичных заданий возобновляет выполнение заданий в новом регионе в соответствии с ранее определенным расписанием заданий.
Чрезмерные журналы аудита SQL из базы данных заданий Агент эластичных заданий работает, постоянно опрашив базу данных заданий, чтобы проверить наличие новых заданий и других операций CRUD. Если аудит включен на сервере, на котором размещена база данных заданий, база данных заданий может создать большое количество журналов аудита. Эту проблему можно устранить, отфильтровав эти журналы аудита с помощью Set-AzSqlServerAudit команды с выражением предиката.

Например:
Set-AzSqlServerAudit -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -BlobStorageTargetState Enabled -StorageAccountResourceId "/subscriptions/7fe3301d-31d3-4668-af5e-211a890ba6e3/resourceGroups/resourcegroup01/providers/Microsoft.Storage/storageAccounts/mystorage" -PredicateExpression "application_name <> 'Microsoft Azure SQL Database elastic jobs'"
Эта команда фильтрует только журналы аудита агента заданий для базы данных заданий, а не журналы аудита агента заданий для любых целевых баз данных.
Использование гипермасштабируемой базы данных в качестве базы данных заданий Использование базы данных Hyperscale в качестве базы данных для заданий не поддерживается. Но задания обработки эластичных баз данных могут применяться к базам данных уровня "Гипермасштабирование" так же, как и к любой другой Базе данных SQL Azure.
Бессерверные базы данных и автоматическая приостановка с использованием эластичных заданий. Автоматическая приостановка бессерверной базы данных не поддерживается в качестве базы данных задания. Бессерверные базы данных, предназначенные для эластичных заданий, поддерживают автоматическую приостановку, а подключения заданий возобновляют их.
Экспорт Job Database в BACPAC-файл Экспорт базы данных задания в BACPAC-файл не поддерживается. Если SQL Server, содержащий базу данных заданий , необходимо экспортировать, сначала удалите базу данных заданий перед экспортом сервера.

Следующий шаг