Partilhar via


Criar, configurar e gerenciar trabalhos elásticos (visualização)

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, PowerShell e a API REST. As tarefas elásticas permitem a execução de um ou mais scripts Transact-SQL (T-SQL) em paralelo em muitas bases de dados. Para obter mais informações, saiba mais sobre os conceitos de automação de trabalho no Banco de Dados SQL do Azure ou leia mais sobre trabalhos elásticos no Banco de Dados SQL do Azure.

Nota

Os trabalhos elásticos estão em pré-visualização. As funcionalidades atualmente em pré-visualização estão disponíveis em termos de utilização suplementares, rever os termos legais que se aplicam às funcionalidades do Azure que estão em pré-visualização. A Base de Dados SQL do Azure fornece pré-visualizações para lhe dar a oportunidade de avaliar e partilhar comentários com o grupo de produtos sobre funcionalidades antes de estas se tornarem disponíveis ao público (GA).

Criar e configurar o agente de trabalho elástico

  1. Crie ou identifique um Banco de Dados SQL do Azure S1 vazio ou superior, usando o modelo de compra de DTU. Esse banco de dados deve estar no mesmo servidor que o agente de trabalho. Esse banco de dados é usado como o banco de dados de trabalho durante a criação do agente de trabalho elástico. Você pode criar um único banco de dados por meio do portal do Azure, CLI do Azure, CLI do Azure (sql up) ou 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 trabalho elástico no portal do Azure são as seguintes:

    1. No portal do Azure, procure agentes do Elastic Job. Selecione Criar para começar a provisionar um novo recurso de agente de trabalho elástico. Ou siga este link para criar um agente do Elastic Job no portal do Azure.
    2. Forneça um nome de agente de trabalho elástico.
    3. Escolha um grupo de Assinatura e Recursos para o agente. Se necessário, crie um novo grupo de recursos. Um trabalho elástico pode direcionar 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 trabalho elástico.
    5. Escolha um banco de dados de trabalho no servidor lógico para ser o banco de dados elástico do agente de trabalho. Alguma validação garante que a base de dados é adequada.
    6. Em Camada de serviço, escolha JA 100.
    7. Selecione Next: Identity.
    8. Há dois métodos de autenticação para o agente de trabalho para servidor(es)/banco de dados de destino), autenticação do Microsoft Entra com uma identidade gerenciada atribuída pelo usuário (UMI) ou credenciais com escopo de banco de dados.
      1. Crie a UMI fora do processo de provisionamento do agente de trabalho elástico ou use uma UMI existente. Selecione Adicionar identidade gerenciada atribuída pelo usuário. Selecione o UMI. Selecione Adicionar.
      2. Para usar credenciais com escopo de banco de dados, consulte as etapas mais adiante neste tutorial.
    9. Selecione Next: Tags.
    10. Considere usar marcas 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 Rever + criar.
    12. Valide suas novas seleções de agente de trabalho elástico na página Revisar + criar e selecione Criar.
    13. São necessárias etapas adicionais para autenticar no(s) servidor(es)/banco(s) de dados de destino. Continue as etapas nas seções a seguir deste artigo tutorial.

Criar autenticação de agente de trabalho

O agente de trabalho elástico deve ser capaz de autenticar em cada servidor ou banco de dados de destino. Nesta seção, abordamos as etapas necessárias para que o agente de trabalho elástico se autentique no(s) servidor(es)/banco(s) de dados em grupos-alvo.

Há duas opções para autenticação de um agente de trabalho elástico para destinos:

  • Use usuários de banco de dados mapeados para UMI (identidade gerenciada atribuída pelo usuário) para autenticar no(s) servidor(es)/banco(s) de dados de destino.
    • Usar um UMI com autenticação do Microsoft Entra (anteriormente Azure Ative Directory) é o método recomendado.
  • Use usuários de banco de dados mapeados para credenciais de escopo de banco de dados em cada banco de dados.
    • Anteriormente, as credenciais de escopo de banco de dados eram a única opção para o agente de trabalho elástico se autenticar nos destinos.

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

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

  1. Habilite a autenticação do Microsoft Entra (anteriormente Azure Ative Directory) em todos os servidores/bancos de dados de destino do trabalho e no servidor lógico de saída do trabalho.
  2. Crie uma identidade gerenciada atribuída pelo usuário (UMI) ou use uma UMI já existente.
  3. Atribua a UMI ao agente de trabalho elástico criado.
    • É recomendável atribuir um UMI ao criar o agente de trabalho elástico, consulte as etapas em Criar e configurar o agente de trabalho elástico. Ao criar um agente de trabalho no portal do Azure, na guia Identidade , atribua ao agente de trabalho elástico.
    • Para atualizar um agente de trabalho elástico existente para usar uma UMI, na página do portal do Azure para o agente de trabalho elástico, navegue até Identidade no menu Segurança no menu de recursos. Selecione e atribua o UMI ao agente de trabalho elástico.
    • Ao criar ou atualizar um agente de trabalho elástico com os cmdlets ou Set-AzSqlElasticJobAgent PowerShell, use os New-AzSqlElasticJobAgent 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 trabalho elástico.
  4. Crie um grupo-alvo e adicione metas para os trabalhos. Defina o grupo de destino e os destinos (os bancos de dados contra os quais você deseja executar o trabalho) usando o PowerShell ou defina o grupo de destino e os destinos usando o T-SQL.
  5. Em cada servidor(es)/banco de dados de destino, crie um usuário contido mapeado para a credencial UMI ou com escopo de banco de dados, usando T-SQL ou PowerShell:
    1. Crie a autenticação de trabalho com T-SQL.
    2. Crie a autenticação de trabalho com o PowerShell.
  6. No banco de dados de saída, crie e atribua permissões ao usuário do trabalho UMI. Conecte-se ao banco de dados de saída e execute o seguinte script de exemplo para um usuário chamado jobuserUMI:
    CREATE USER [jobuserUMI] FROM EXTERNAL PROVIDER; 
    GO 
    
  7. Se os parâmetros de saída forem especificados na chamadathe @output_table_name argument, a UMI do sp_add_jobstep Agente de Trabalho ou a credencial com escopo de banco de dados deverão 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 servidor(es)/banco de dados de destino, conceda ao usuário do banco de dados as permissões necessárias para executar scripts de trabalho. Essas permissões variam com base nos requisitos da consulta T-SQL.

Usar credenciais com escopo de banco de dados

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

Nota

Se um UMI for atribuído ao Agente de Trabalho, a Autenticação SQL não será usada para se conectar a seus destinos. O Job Agent usará apenas a autenticação do Microsoft Entra com o UMI para se conectar a todos os seus bancos de dados de destino.

  1. Crie uma credencial com escopo de banco de dados no banco de dados de tarefas.
    1. Usar o PowerShell para criar uma credencial com escopo de banco de dados
    2. Use o T-SQL para criar uma credencial com escopo de banco de dados.
  2. Defina o grupo de destino (os bancos de dados contra os quais você deseja executar o trabalho) usando o PowerShell ou defina destinos usando T-SQL.
  3. Crie um login/usuário do agente de trabalho em cada banco de dados de destino onde o trabalho será executado. O login/usuário em cada servidor/banco de dados de destino deve ter o mesmo nome que a identidade da credencial com escopo de banco de dados para o usuário de trabalho e a mesma senha que a credencial de escopo de banco de dados para o usuário de 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 o 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 do trabalho.
    1. Conecte-se ao master banco de dados do servidor lógico que hospeda o banco de dados de saída. Se ainda não existir, crie um logon autenticado SQL com o mesmo nome que a identidade da credencial de escopo de banco de dados para o usuário de trabalho e a mesma senha que a credencial de escopo de 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 chamado job_user:
      CREATE USER [job_user] FROM LOGIN [job_user]; 
      GO 
      
    3. Se os sp_add_jobstepparâmetros de saída forem especificados na chamada no argumento @output_table_name , a UMI do Agente de Trabalho ou a credencial com escopo de banco de dados deverão 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 servidor(es)/banco de dados de destino, conceda ao usuário do banco de dados as permissões necessárias para executar scripts de trabalho. Essas permissões variam com base nos requisitos da consulta T-SQL.

Criar, executar e gerir tarefas

  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. Deve ser escolhido um grupo-alvo 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 de execução de trabalhos usando o portal do Azure, monitore trabalhos com o PowerShell ou monitore trabalhos com T-SQL.

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

Cada servidor de destino pode ser alcançado por meio de um ponto de extremidade privado gerenciado por serviços, 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 vínculo privado entre o trabalho elástico e o servidor de destino. Uma vez configurada, toda a comunicação entre o agente de trabalho elástico 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 trabalho para habilitar essa comunicação.

  1. No menu de navegação do agente de trabalho elástico, em Segurança, selecione Pontos de extremidade privados.
  2. Selecione Adicionar um servidor e criar 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 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 trabalho 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 pelo 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 permitir o acesso público para fins de trabalhos elásticos.

Configurar alertas de agente de trabalho com o Azure Monitor

Configure os Alertas do Azure Monitor no recurso do agente de trabalho elástico para ser notificado sobre o status de execução do trabalho. Por exemplo, você pode ser notificado sobre falha/sucesso de um trabalho por meio de grupos de ação configurados pelo usuário.

Você pode criar alertas de agente de trabalho elástico usando o portal do Azure, o PowerShell ou a API REST.

Criar alertas de agente de trabalho 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. As regras de alerta para trabalhos elásticos funcionam de forma semelhante a outras regras de alerta, como para o Banco de Dados SQL do Azure.

Para prosseguir com o portal do Azure:

  1. No menu de recursos do portal do Azure para o agente do Elastic Job, vá para o menu Monitoramento e selecione Alertas.
  2. Em Configurar regras de alerta neste prompt de 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 falha, Execuções de trabalhos elásticos bem-sucedidas ou Execuções de trabalhos elásticos com tempo limite expirado.Screenshot from the Azure portal showing the Create an alert rule page.
  4. Em Lógica de alerta, deixe o Limite, Tipo de agregação, Operador e Unidade como padrão.
  5. Defina o valor do limite como 0. Deixe outras configurações como padrão.
  6. Analise a estimativa de custo na visualização de custos.
  7. Selecione Next: Actions.
  8. Selecione Criar grupo de ações ou escolha um grupo de ações existente.
    1. Crie grupos de ação de Alerta 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 Alerta.
  9. Selecione Next: Details.
  10. Forneça um grupo de Assinatura e Recursos como detalhes do projeto.
  11. Forneça detalhes da regra de alerta para a comunicação de alerta. Forneça um nome de regra de alerta.
  12. Selecione Tags e forneça metadados, como CreatedBy ou Environment para este alerta.
  13. Selecione Rever + Criar. Selecione Criar. Pode levar alguns minutos para que a regra de alerta seja exibida no portal do Azure.
  14. Opcionalmente, crie regras de processamento do Azure Monitor Alert 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 é acionado, como suprimir notificações ou aplicar ações específicas a determinados tipos de alertas.

Dimensionar o agente de trabalho

Por padrão, os agentes de trabalho são criados em JA100, permitindo até 100 execuções de trabalho elástico 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 curto atraso de provisionamento.

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

Exceder o nível de serviço com trabalhos simultâneos criará atrasos na fila antes do início dos trabalhos além do limite de trabalhos simultâneos do nível de serviço.

Dimensionar o agente de trabalho elástico usando o portal do Azure

  1. Navegue até a página do agente do Elastic Job no portal do Azure.
  2. Selecione Nível de preço ou selecione Escalar para cima/para baixo no menu de contexto.
  3. Escolha uma nova camada de serviço na lista suspensa Camada de serviço .
  4. Reveja o cartão de custo.
  5. Selecione Atualizar.

Dimensionar o agente de trabalho elástico usando o PowerShell

O parâmetro opcional -ServiceObjective para pode ser usado para Set-AzSqlElasticJobAgent 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 trabalho elástico usando a API REST

Você pode usar a API REST do agente de trabalho para dimensionar um agente de trabalho. 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"
}  
}