Criar, configurar e gerenciar trabalhos elásticos

Aplica-se a:Banco de Dados SQL do Azure

Este artigo fornece as etapas necessárias para criar, configurar e gerenciar trabalhos elásticos para o Banco de Dados SQL do Azure. Você pode realizar muitas dessas etapas no portal do Azure e usando T-SQL, o PowerShell e a API REST. Os trabalhos elásticos habilitam a execução de um ou mais scripts T-SQL (Transact-SQL) em paralelo entre vários bancos de dados. Para obter mais informações saiba mais sobre os conceitos de automação de trabalhos no Banco de Dados SQL do Azure ou leia mais sobre trabalhos elásticos no Banco de Dados SQL do Azure.

Criar e configurar o agente de trabalho elástico

  1. Crie ou identifique um S1 vazio ou um Banco de Dados SQL do Azure superior usando o modelo de compra de DTU. Esse banco de dados deve estar no mesmo servidor que o agente de trabalhos. Esse banco de dados é usado como o banco de dados de trabalhos durante a criação do agente de trabalho elástico. Você pode criar um único banco de dados por meio do portal do Azure, da CLI do Azure, da CLI do Azure (sql up) ou do PowerShell.

  2. Crie um agente de trabalho elástico no portal do Azure ou com o PowerShell.

    As instruções para criar um agente de trabalhos elásticos no portal do Azure são as seguintes:

    1. No portal do Azure, procure Agentes de trabalhos elásticos. Selecione Criar para começar a provisionar um novo recurso de agente de trabalhos elásticos. Ou siga este link para criar um agente de trabalhos elásticos no portal do Azure.
    2. Forneça um Nome de agente de trabalho elástico.
    3. Escolha uma Assinatura e um Grupo de recursos para o agente. Se necessário, crie um novo grupo de recursos. Um trabalho elástico pode visar bancos de dados em outros grupos de recursos, assinaturas e até mesmo outras regiões do Azure.
    4. Escolha o servidor lógico do Banco de Dados SQL do Azure para ser o servidor do agente de trabalhos elásticos.
    5. Escolha um banco de dados dfe trabalhos no servidor lógico para ser o banco de dados do agente de trabalhos elásticos. Certas validações garantem que o banco de dados é adequado.
    6. Em Nível de serviço, escolha JA 100.
    7. Selecione Avançar: Identidade.
    8. Há dois métodos de autenticação do agente de trabalhos para servidores/bancos de dados de destino: autenticação com Microsoft Entra usando uma identidade gerenciada atribuída pelo usuário (UMI) ou credenciais no escopo do banco de dados.
      1. Crie a UMI fora do processo de provisionamento do agente de trabalhos elásticos ou use uma UMI existente. Selecione Adicionar identidade gerenciada atribuída pelo usuário. Selecione a UMI. Selecione Adicionar.
      2. Para usar credenciais com escopo de banco de dados, consulte as etapas mais adiante neste tutorial.
    9. Selecione Avançar: Marcas.
    10. Considere usar tags do Azure. Por exemplo, a tag "Owner" ou "CreatedBy" para identificar quem criou o recurso e a tag "Environment" para identificar se esse recurso está em Produção, Desenvolvimento, etc. Para obter mais informações, consulte Desenvolver sua estratégia de nomenclatura e marcação para recursos do Azure.
    11. Selecione Examinar + criar.
    12. Valide suas novas seleções de agentes de trabalhos elásticos na página Revisar + criar e selecione Criar.
    13. Outras etapas são necessárias para autenticação nos servidores/banco de dados de destino. Continue as etapas nas seções a seguir deste artigo de tutorial.

Criar autenticação de agentes de trabalhos

O agente de trabalho elástico deve ser capaz de se autenticar em cada servidor ou banco de dados de destino. Nesta seção, abordaremos as etapas necessárias para o agente de trabalho elástico se autenticar nos servidores/bancos de dados em grupos de destino.

Há duas opções para autenticação de um agente de trabalhos elásticos em destinos:

Use a autenticação do Microsoft Entra com uma identidade gerenciada atribuída pelo usuário (UMI):

Use a Autenticação com o Microsoft Entra (o antigo Azure Active Directory) com uma identidade gerenciada atribuída pelo usuário (UMI). Este é o método de autenticação recomendado.

  1. Habilite a autenticação com o Microsoft Entra (o antigo Azure Active Directory) em todos os servidores/bancos de dados lógicos de destino de trabalho e no servidor lógico de saída de trabalho.
  2. Crie uma identidade gerenciada atribuída pelo usuário (UMI) ou use uma UMI existente.
  3. Atribua a UMI ao agente de trabalhos elásticos criado.
    • É recomendável atribuir uma UMI ao criar o agente de trabalhos elásticos. Consulte as etapas em Criar e configurar o agente de trabalhos elásticos. Ao criar um agente de trabalhos no portal do Azure, na guia Identidade, atribua ao agente de trabalhos elásticos.
    • Para atualizar um agente de trabalhos elásticos existente de forma a usar uma UMI, na página do portal do Azure do agente de trabalhos elásticos, navegue até Identidade no menu Segurança do menu de recursos. Selecione e atribua a UMI ao agente de trabalhos elásticos.
    • Ao criar ou atualizar um agente de trabalho elástico com os cmdlets New-AzSqlElasticJobAgent ou Set-AzSqlElasticJobAgent do PowerShell, use os parâmetros: -IdentityType UserAssigned -IdentityID <identity resource path>. Por exemplo:
      $parameters = @{
          Name = '<job agent name>'
          ResourceGroupName = '<Resource_Group_Name>'
          IdentityType = 'UserAssigned'
          IdentityID = '/subscriptions/fa58cf66-caaf-4ba9-875d-f1234/resourceGroups/<resource group name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<UMI name here>'
      }
      Set-AzSqlElasticJobAgent @parameters
      
    • A API REST também pode ser usada para criar ou atualizar o agente de trabalhos elásticos.
  4. Crie um grupo de destino e adicione destinos para os trabalhos. Defina o grupo de destino e os destinos (os bancos de dados nos quais você deseja executar o trabalho) usando o PowerShell ou defina o grupo de destino e os destinos usando T-SQL.
  5. Em cada um dos servidores/bancos de dados de destino, crie um usuário contido mapeado para a UMI ou credencial no escopo de banco de dados, usando T-SQL ou PowerShell:
    1. Criar a autenticação do trabalho com T-SQL
    2. Crie a autenticação do trabalho com o PowerShell.
  6. No banco de dados de saída, crie e atribua permissões ao usuário de trabalho de UMI. Conecte-se ao banco de dados de saída e execute o seguinte script de exemplo para um usuário denominado jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Se os parâmetros de saída forem especificados na chamada sp_add_jobstep em the @output_table_name argument, a UMI do Agente de Trabalho ou a credencial com escopo de banco de dados deverá receber permissões para CREATE TABLE e INSERT dados nessa tabela de saída.
    GRANT CREATE TABLE TO [job_user];
    GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
    
  8. Em cada um dos servidores/bancos de dados de destino, conceda ao usuário do banco de dados as permissões necessárias para executar scripts de trabalhos. Essas permissões variam dependendo dos requisitos da consulta T-SQL.

Usar credenciais no escopo do banco de dados

Você pode usar uma credencial no escopo do banco de dados no banco de dados de trabalhos e em cada servidor/banco de dados de destino para autenticação. No passado, credenciais no escopo do banco de dados eram a única opção disponível com trabalhos elásticos.

Observação

Se uma UMI for atribuída ao agente de trabalhos, a Autenticação SQL não será usada para se conectar aos seus destinos. O agente de trabalhos apenas usará a autenticação com Microsoft Entra usando a UMI para se conectar a todos os bancos de dados de destino.

  1. Crie uma credencial no escopo de banco de dados no banco de dados de trabalhos.
    1. Usar o PowerShell para criar uma credencial no escopo do banco de dados
    2. Usar o T-SQL para criar uma credencial no escopo do banco de dados
  2. Defina o grupo de destino (os bancos de dados em que você deseja executar o trabalho) usando o PowerShell ou defina destinos usando T-SQL.
  3. Crie um logon/usuário do agente de trabalhos em cada banco de dados de destino em que trabalho será executado. O logon/usuário em cada servidor/banco de dados de destino deve ter o mesmo nome que a identidade da credencial no escopo do banco de dados para o usuário do trabalho e a mesma senha que a credencial no escopo do banco de dados para o usuário do trabalho.
    1. Use o PowerShell para adicionar a credencial e o usuário a cada banco de dados de destino.
    2. Para obter mais informações sobre como adicionar usuários, consulte Autorizar acesso ao servidor e ao banco de dados usando logons e contas de usuário.
  4. No banco de dados de saída, crie e atribua permissões ao usuário de trabalho.
    1. Conecte-se ao banco de dados master do servidor lógico que hospeda o banco de dados de saída. Se ainda não existir um, crie logon autenticado SQL com o mesmo nome que a identidade da credencial no escopo do banco de dados para o usuário de trabalho e a mesma senha que a credencial no escopo do banco de dados para o usuário de trabalho.
      CREATE LOGIN [job_user] WITH PASSWORD '<same_password_as_database-scoped_credential>'
      GO 
      
    2. Conecte-se ao banco de dados de saída e execute o seguinte script de exemplo para um usuário denominado job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Se os parâmetros de saída forem especificados na chamada sp_add_jobstep no argumento @output_table_name, a UMI do Agente de Trabalho ou a credencial com escopo de banco de dados deverá receber permissões para CREATE TABLE e INSERT dados nessa tabela de saída.
      GRANT CREATE TABLE TO [job_user];
      GRANT SELECT,INSERT,UPDATE,DELETE ON [dbo].[output_table_name] TO job_user;
      
  5. Em cada um dos servidores/bancos de dados de destino, conceda ao usuário do banco de dados as permissões necessárias para executar scripts de trabalhos. Essas permissões variam dependendo dos requisitos da consulta T-SQL.

Criar, executar e gerenciar trabalhos

  1. Use o PowerShell para criar um trabalho ou use o T-SQL para criar um trabalho.
  2. Adicione etapas a cada trabalho elástico. Um grupo de destino deve ser escolhido para cada etapa do trabalho. Use o PowerShell para adicionar etapas de trabalho ou use o T-SQL para adicionar etapas de trabalho.
  3. Use o PowerShell para executar um trabalho ou use o T-SQL para executar um trabalho.
  4. Monitore o status da execução de trabalhos usando o portal do Azure, monitore trabalhos com o PowerShell ou monitore trabalhos com o T-SQL.

Configurar o ponto de extremidade privado de trabalhos elásticos do SQL do Azure

Cada servidor de destino pode ser acessado por meio de um ponto de extremidade privado gerenciado por serviço, criado e gerenciado pela Microsoft e exclusivamente para uso com trabalhos elásticos. A criação de um ponto de extremidade privado de trabalhos elásticos estabelece um link privado entre o trabalho elástico e o servidor de destino. Uma vez configurado, toda a comunicação entre o agente de trabalhos elásticos e o servidor de destino ocorrerá por meio do ponto de extremidade privado.

A configuração é fácil. Você deve criar um ponto de extremidade privado para cada servidor de destino desejado e o servidor de saída de trabalhos para habilitar essa comunicação.

  1. No menu de navegação do agente de trabalhos elásticos, em Segurança, selecione Pontos de extremidade privados.
  2. Selecione Adicionar um servidor e criar um ponto de extremidade privado.
  3. A janela Criar ponto de extremidade privado é aberta.
    1. Você pode selecionar um servidor de destino de qualquer Assinatura, em qualquer lugar no Azure.
    2. Selecione um servidor lógico do Banco de Dados SQL do Azure de destino nessa assinatura.
    3. Forneça um Nome de ponto de extremidade privado.
  4. Selecione Criar um ponto de extremidade privado. A implantação levará alguns momentos. Em breve, o Status da conexão na página Pontos de extremidade privados mostrará Pendente.
  5. No portal do Azure, navegue até o servidor lógico do Banco de Dados SQL do Azure de destino.
  6. Como administrador desse servidor lógico do Banco de Dados SQL do Azure de destino, no menu de navegação do SQL Server, em Segurança, selecione Rede.
  7. Selecione Acesso privado.
  8. Aprove a solicitação de ponto de extremidade privado pendente.
  9. O Status da conexão na página Pontos de extremidade privados mostrará Aprovado. Agora, qualquer comunicação entre o agente de trabalhos e quaisquer bancos de dados ou pools elásticos nesse servidor lógico do Banco de Dados SQL do Azure de destino passará pelo ponto de extremidade privado gerenciado por serviço.
  10. Como administrador desse servidor lógico do Banco de Dados SQL do Azure de destino, no menu de navegação do SQL Server, em Segurança, selecione Rede. Não é necessário habilitar o Acesso público para fins de trabalhos elásticos.

Configurar alertas de agentes de trabalhos com o Azure Monitor

Configure Alertas do Azure Monitor no recurso do agente de trabalhos elásticos para receber notificações sobre o status de execução de trabalhos. Por exemplo, você pode ser notificado sobre falha/êxito de um trabalho por meio de grupos de Ação configurados pelo usuário.

Você pode criar alertas de agentes de trabalhos elásticos usando o portal do Azure, o PowerShell ou a API REST.

Criar alertas de agente de trabalhos usando o portal do Azure

Crie regras de Alerta do Azure Monitor com o portal do Azure, a CLI do Azure, o PowerShell e a API REST. Regras de alerta para trabalhos elásticos funcionam de forma semelhante a outras regras de alertas, como para o Banco de Dados SQL do Azure.

Para continuar com o portal do Azure:

  1. No menu de recursos do portal do Azure para o agente de trabalhos elásticos, acesse o menu Monitoramento e selecione Alertas.
  2. No prompt Configurar regras de alerta neste recurso, selecione Criar regra de alerta.
  3. Na página Criar uma regra de alerta, a página Selecionar um sinal é aberta. Selecione as métricas de trabalhos elásticos Execuções de trabalhos elásticos com falhas, Execuções de trabalhos elásticos bem-sucedidas ou Execuções de trabalhos elásticos com tempo limite. Captura de tela do portal do Azure mostrando a página Criar uma regra de alerta.
  4. Em Lógica de alerta, deixe o Limite, Tipo de agregação, Operador e Unidade como padrão.
  5. Defina o valor de Limite como 0. Deixe as outras configurações como padrão.
  6. Selecione Avançar: Ações.
  7. Selecione Criar grupo de ações ou escolha um grupo de ações existente.
    1. Crie grupos de ações de Alertas do Azure Monitor no portal do Azure para definir configurações de notificação, por exemplo, para administradores de email ou desenvolvedores da falha.
    2. Teste o Grupo de ações de alertas.
  8. Selecione Avançar: Detalhes.
  9. Forneça uma Assinatura e um Grupo de recursos como Detalhes do projeto.
  10. Forneça Detalhes da regra de alerta para a comunicação de alertas. Forneça um Nome de regra de alerta.
  11. Selecione Tags e forneça metadados, como CreatedBy ou Environment para esse alerta.
  12. Selecione Examinar + criar. Selecione Criar. Pode demorar alguns minutos para que a regra de alerta seja exibida no portal do Azure.
  13. Opcionalmente, crie regras de processamento de Alertas do Azure Monitor usando o portal do Azure, a CLI do Azure ou o PowerShell. Use regras de processamento de alertas para decidir o que acontece quando um alerta é disparado, como suprimir notificações ou aplicar ações específicas a certos tipos de alertas.

Dimensionar o agente de trabalho

Por padrão, agentes de trabalho são criados no JA100, permitindo até 100 execuções de tarefas elásticas simultaneamente. Iniciar uma alteração de nível de serviço é uma operação assíncrona, e o novo nível de serviço será disponibilizado após um pequeno atraso no provisionamento.

Se você precisar de mais de 100 execuções simultâneas de agentes de trabalhos elásticos, níveis de serviço mais altos estarão disponíveis, consulte Níveis de capacidade simultâneas. No momento, você pode alterar o nível de serviço de um agente de trabalho por meio do portal do Azure, do PowerShell ou da API REST.

Exceder o nível de serviço com trabalhos simultâneos criará atrasos de enfileiramento antes que os trabalhos comecem a exceder o limite de trabalhos simultâneos do nível de serviço.

Dimensionar o agente de trabalhos elásticos usando o portal do Azure

  1. Navegue até a página Agente de trabalhos elásticos no portal do Azure.
  2. Selecione Nível de preço ou Escalar para cima/baixo no menu de contexto.
  3. Escolha um novo nível de serviço na lista suspensa Nível de serviço.
  4. Revise o cartão de custos.
  5. Selecione Atualizar.

Dimensionar o agente de trabalhos elásticos usando o PowerShell

O parâmetro opcional -ServiceObjective para Set-AzSqlElasticJobAgent pode ser usado para especificar um novo objetivo de serviço. Por exemplo:

$parameters = @{
    Name = '<job agent name>'
    ResourceGroupName = '<Resource_Group_Name>'
    ServiceObjective = 'JA200'
}
Set-AzSqlElasticJobAgent @parameters

Dimensionar o agente de trabalhos elásticos usando a API REST

Você pode usar a API REST do agente de trabalhos para dimensionar um agente de trabalhos. Por exemplo:

{ 
"id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/jobAgents/agent1", 
"name": "agent1", 
"type": "Microsoft.Sql/servers/jobAgents", 
"location": "southeastasia", 
"sku": {
"name": "JA100  ", 
"capacity": 100 
}, 
"properties": {  
"databaseId": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/group1/providers/Microsoft.Sql/servers/server1/databases/db1"
}  
}