Criar, configurar e gerenciar trabalhos elásticos (versão prévia)

APLICA-SE A: Banco de Dados SQL do Azure

Neste artigo, você aprenderá a criar, configurar e gerenciar trabalhos elásticos.

Se você nunca tiver usado os Trabalhos elásticos, saiba mais sobre os conceitos de automação de trabalho no Banco de Dados SQL do Azure.

Criar e configurar o agente

  1. Crie ou identifique um S0 vazio ou um banco de dados superior. Esse banco de dados será usado como o Banco de dados de trabalhos durante a criação do agente de Trabalho Elástico.

  2. Crie um agente de Trabalho Elástico no portal ou com o PowerShell.

    Criando um agente de Trabalho Elástico

Criar, executar e gerenciar trabalhos

  1. Crie uma credencial para a execução de trabalhos no Banco de dados de trabalho usando o PowerShell ou o T-SQL.

  2. Defina o grupo de destino (os bancos de dados em que você deseja executar o trabalho) usando o PowerShell ou o T-SQL.

  3. Crie uma credencial de agente de trabalho em cada banco de dados em que o trabalho será executado (adicione o usuário (ou função) para cada banco de dados no grupo). Para obter um exemplo, confira o tutorial do PowerShell.

  4. Crie um trabalho usando o PowerShell ou o T-SQL.

  5. Adicione etapas de trabalho usando o PowerShell ou o T-SQL.

  6. Execute um trabalho usando o PowerShell ou o T-SQL.

  7. Monitore o status de execução do trabalho usando o portal, o PowerShell ou o T-SQL.

    Portal

Credenciais para executar trabalhos

Os trabalhos usam credenciais no escopo do banco de dados para se conectar aos bancos de dados especificados pelo grupo de destino após a execução. Se um grupo de destino contém servidores ou pools, essas credenciais no escopo do banco de dados são usadas para conexão com o banco de dados mestre a fim de enumerar os bancos de dados disponíveis.

A configuração das devidas credenciais para executar um trabalho pode ser um pouco confusa e, portanto, tenha os seguintes pontos em mente:

  • As credenciais no escopo do banco de dados devem ser criadas no banco de dados de trabalhos.
  • Todos os bancos de dados de destino devem ter um logon com permissões suficientes para que o trabalho seja concluído com êxito (jobuser no diagrama abaixo).
  • As credenciais podem ser reutilizadas entre os trabalhos e as senhas de credencial são criptografadas e protegidas contra usuários que têm acesso somente leitura a objetos de trabalho.

A imagem a seguir foi criada para ajudar na compreensão e na configuração das credenciais de trabalho adequadas. Lembre-se de criar o usuário em cada banco de dados (todos os bancos de dados de usuário de destino) em que o trabalho será executado.

Credenciais de trabalhos elásticos

Melhores práticas de segurança

Algumas considerações sobre melhores práticas para usar trabalhos elásticos:

  • Limite o uso das APIs somente a pessoas confiáveis.
  • As credenciais devem ter os privilégios mínimos necessários para executar a etapa do trabalho. Para mais informações, confira Autorizações e permissões.
  • Ao usar um servidor e/ou um membro do grupo de destino de pool, é altamente recomendável criar uma credencial separada com direitos sobre o banco de dados mestre para exibir/listar bancos de dados, que será usada para expandir as listas de banco de dados dos servidores e/ou pools antes da execução do trabalho.

Desempenho, capacidade e limitações do agente

Os Trabalhos Elásticos usam o mínimo de recursos de computação enquanto aguardam a conclusão dos trabalhos de longa execução.

Dependendo do tamanho do grupo de destino de bancos de dados e do tempo de execução desejado para um trabalho (número de trabalhos simultâneos), o agente requer quantidades diferentes de computação e desempenho do banco de dados de trabalhos (quanto mais destinos e trabalhos, maior será a quantidade de computação necessária).

Atualmente, a versão prévia está limitada a 100 trabalhos simultâneos.

Impedir que os trabalhos reduzam o desempenho do banco de dados de destino

Para que os recursos não fiquem sobrecarregados ao executar trabalhos em bancos de dados em um pool elástico do SQL, os trabalhos podem ser configurados para limitar o número de bancos de dados em que o trabalho pode ser executado simultaneamente.

Defina o número de bancos de dados simultâneos em que um trabalho será executado, definindo o parâmetro do sp_add_jobstepprocedimento armazenado@max_parallelism no T-SQL.

Melhores práticas para a criação de trabalhos

Scripts idempotentes

Os scripts T-SQL de um trabalho devem ser idempotentes. Idempotente significa que, se o script tiver êxito e for executado novamente, o mesmo resultado ocorrerá. Um script pode falhar devido a problemas de rede transitórios. Nesse caso, o trabalho repetirá automaticamente a execução do script por um número predefinido de vezes antes de desistir. Um script idempotente tem o mesmo resultado, mesmo que tenha sido executado com êxito duas vezes (ou mais).

É uma tática simples para testar a existência de um objeto antes de criá-lo. Um exemplo hipotético é mostrado abaixo:

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.

Da mesma forma, um script deve ser capaz de realizar a execução com êxito testando e combatendo logicamente quaisquer condições que encontrar.

Próximas etapas