Usar modelos de início rápido do Azure para configurar um grupo de disponibilidade para o SQL Server na VM do Azure

Aplica-se a:SQL Server na VM do Azure

Gorjeta

Há muitos métodos para implantar um grupo de disponibilidade. Simplifique sua implantação e elimine a necessidade de um Balanceador de Carga do Azure ou DNN (nome de rede distribuída) para seu grupo de disponibilidade Always On criando suas máquinas virtuais (VMs) do SQL Server em várias sub-redes dentro da mesma rede virtual do Azure. Se você já criou seu grupo de disponibilidade em uma única sub-rede, pode migrá-lo para um ambiente de várias sub-redes.

Este artigo descreve como usar os modelos de início rápido do Azure para automatizar parcialmente a implantação de uma configuração de grupo de disponibilidade Always On para máquinas virtuais (VMs) do SQL Server em uma única sub-rede no Azure. Dois modelos de início rápido do Azure são usados neste processo:

Modelo Description
sql-vm-ag-setup Cria o cluster de failover do Windows e une as VMs do SQL Server a ele.
sql-vm-aglistener-setup Cria o ouvinte do grupo de disponibilidade e configura o balanceador de carga interno. Este modelo só pode ser usado se o cluster de failover do Windows tiver sido criado com o modelo 101-sql-vm-ag-setup .

Outras partes da configuração do grupo de disponibilidade devem ser feitas manualmente, como a criação do grupo de disponibilidade e a criação do balanceador de carga interno. Este artigo fornece a sequência de etapas automatizadas e manuais.

Embora este artigo use os modelos de início rápido do Azure para configurar o ambiente do grupo de disponibilidade, também é possível fazê-lo usando o portal do Azure, o PowerShell ou a CLI do Azure ou também manualmente .

Nota

Agora é possível elevar e mudar sua solução de grupo de disponibilidade para o SQL Server em VMs do Azure usando o Azure Migrate. Consulte Migrar grupo de disponibilidade para saber mais.

Pré-requisitos

Para automatizar a configuração de um grupo de disponibilidade Always On usando modelos de início rápido, você deve ter os seguintes pré-requisitos:

Permissões

As seguintes permissões são necessárias para configurar o grupo de disponibilidade Always On usando modelos de início rápido do Azure:

  • Uma conta de usuário de domínio existente que tenha a permissão Criar Objeto de Computador no domínio. Por exemplo, uma conta de administrador de domínio normalmente tem permissão suficiente (por exemplo: account@domain.com). Essa conta também deve fazer parte do grupo de administradores locais em cada VM para criar o cluster.
  • A conta de usuário de domínio que controla o SQL Server.

Criar cluster

Depois que suas VMs do SQL Server tiverem sido registradas com a extensão do SQL IaaS Agent, você poderá unir suas VMs do SQL Server ao SqlVirtualMachineGroups. Este recurso define os metadados do cluster de failover do Windows. Os metadados incluem a versão, edição, nome de domínio totalmente qualificado, contas do Ative Directory para gerenciar o cluster e o SQL Server e a conta de armazenamento como testemunha da nuvem.

Adicionar VMs do SQL Server ao grupo de recursos SqlVirtualMachineGroups inicializa o Serviço de Cluster de Failover do Windows para criar o cluster e, em seguida, une essas VMs do SQL Server a esse cluster. Esta etapa é automatizada com o modelo de início rápido 101-sql-vm-ag-setup. Você pode implementá-lo usando as seguintes etapas:

  1. Vá para o modelo de início rápido sql-vm-ag-setup. Em seguida, selecione Implantar no Azure para abrir o modelo de início rápido no portal do Azure .

  2. Preencha os campos obrigatórios para configurar os metadados para o cluster de failover do Windows. Pode deixar os campos opcionais em branco.

    A tabela a seguir mostra os valores necessários para o modelo:

    Campo Valor
    Subscrição A assinatura onde suas VMs do SQL Server existem.
    Grupo de recursos O grupo de recursos onde suas VMs do SQL Server residem.
    Nome do cluster de failover O nome que você deseja para seu novo cluster de failover do Windows.
    Lista Vm existente As VMs do SQL Server que você deseja participar do grupo de disponibilidade e fazer parte desse novo cluster. Separe esses valores com uma vírgula e um espaço (por exemplo: SQLVM1, SQLVM2).
    Versão do SQL Server A versão do SQL Server de suas VMs do SQL Server. Selecione-o na lista suspensa. Atualmente, apenas imagens do SQL Server 2016 e do SQL Server 2017 são suportadas.
    Nome de domínio totalmente qualificado existente O FQDN existente para o domínio no qual suas VMs do SQL Server residem.
    Conta de domínio existente Uma conta de usuário de domínio existente que tem a permissão Criar Objeto de Computador no domínio à medida que o CNO é criado durante a implantação do modelo. Por exemplo, uma conta de administrador de domínio normalmente tem permissão suficiente (por exemplo: account@domain.com). Essa conta também deve fazer parte do grupo de administradores locais em cada VM para criar o cluster.
    Palavra-passe da conta de domínio A senha para a conta de usuário de domínio mencionada anteriormente.
    Conta de serviço SQL existente A conta de usuário de domínio que controla o serviço do SQL Server durante a implantação do grupo de disponibilidade (por exemplo: account@domain.com).
    Senha do serviço Sql A senha usada pela conta de usuário de domínio que controla o SQL Server.
    Nome do Cloud Witness Uma nova conta de armazenamento do Azure que será criada e usada para a testemunha de nuvem. Você pode modificar esse nome.
    Localização _artifacts Este campo é definido por padrão e não deve ser modificado.
    _artifacts Localização SaS Token Este campo é intencionalmente deixado em branco.
  3. Se você concordar com os termos e condições, marque a caixa de seleção Concordo com os termos e condições indicados acima . Em seguida, selecione Comprar para concluir a implantação do modelo de início rápido.

  4. Para monitorar sua implantação, selecione a implantação no ícone de sino de notificações no banner de navegação superior ou vá para Grupo de Recursos no portal do Azure. Selecione Implantações em Configurações e escolha a implantação Microsoft.Template.

Nota

As credenciais fornecidas durante a implantação do modelo são armazenadas apenas durante a implantação. Após a conclusão da implantação, essas senhas são removidas. Você será solicitado a fornecê-las novamente se adicionar mais VMs do SQL Server ao cluster.

Configurar quórum

Embora a testemunha de disco seja a opção de quórum mais resiliente, ela requer um disco compartilhado do Azure que impõe algumas limitações ao grupo de disponibilidade. Como tal, a testemunha de nuvem é a solução de quorum recomendada para clusters que hospedam grupos de disponibilidade para o SQL Server em VMs do Azure.

Se você tiver um número par de votos no cluster, configure a solução de quórum que melhor atenda às suas necessidades de negócios. Para obter mais informações, consulte Quórum com VMs do SQL Server.

Validar cluster

Para que um cluster de failover seja suportado pela Microsoft, ele deve passar na validação do cluster. Conecte-se à VM usando seu método preferido, como o protocolo RDP (Remote Desktop Protocol) e valide se o cluster passa na validação antes de prosseguir. A falha ao fazer isso deixa o cluster em um estado sem suporte.

Você pode validar o cluster usando o FCM (Gerenciador de Cluster de Failover) ou o seguinte comando do PowerShell:

Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"

Criar grupo de disponibilidade

Crie manualmente o grupo de disponibilidade como faria normalmente, usando o SQL Server Management Studio, o PowerShell ou o Transact-SQL.

Importante

Não crie um ouvinte neste momento, porque o modelo de início rápido 101-sql-vm-aglistener-setup faz isso automaticamente na etapa 4.

Criar um balanceador de carga

Nota

As implantações de grupo de disponibilidade em várias sub-redes não exigem um balanceador de carga. Em um ambiente de sub-rede única, os clientes que usam o SQL Server 2019 CU8 e posterior no Windows 2016 e posterior podem substituir o ouvinte VNN (nome de rede virtual) tradicional e o Balanceador de Carga do Azure por um ouvinte DNN (nome de rede distribuído). Se você quiser usar uma DNN, ignore todas as etapas do tutorial que configuram o Balanceador de Carga do Azure para seu grupo de disponibilidade.

O ouvinte do grupo de disponibilidade Always On requer uma instância interna do Azure Load Balancer. O balanceador de carga interno fornece um endereço IP "flutuante" para o ouvinte do grupo de disponibilidade que permite failover e reconexão mais rápidos. Se as VMs do SQL Server em um grupo de disponibilidade fizerem parte do mesmo conjunto de disponibilidade, você poderá usar um balanceador de carga Básico. Caso contrário, você precisará usar um balanceador de carga padrão.

Importante

O balanceador de carga interno deve estar na mesma rede virtual que as instâncias de VM do SQL Server.

Você só precisa criar o balanceador de carga interno. Na etapa 4, o modelo de início rápido 101-sql-vm-aglistener-setup lida com o restante da configuração (como o pool de back-end, a sonda de integridade e as regras de balanceamento de carga).

  1. No portal do Azure, abra o grupo de recursos que contém as máquinas virtuais do SQL Server.

  2. No grupo de recursos, selecione Adicionar.

  3. Procure por balanceador de carga. Nos resultados da pesquisa, selecione Load Balancer, que é publicado pela Microsoft.

  4. Na folha Balanceador de Carga, selecione Criar.

  5. Na caixa de diálogo Criar balanceador de carga, configure o balanceador de carga da seguinte maneira:

    Definição valor
    Name Insira um nome de texto que represente o balanceador de carga. Por exemplo, insira sqlLB.
    Tipo Interna: A maioria das implementações usa um balanceador de carga interno, que permite que aplicativos dentro da mesma rede virtual se conectem ao grupo de disponibilidade.
    Externo: Permite que os aplicativos se conectem ao grupo de disponibilidade por meio de uma conexão pública com a Internet.
    Rede virtual Selecione a rede virtual em que as instâncias do SQL Server estão.
    Sub-rede Selecione a sub-rede em que as instâncias do SQL Server estão.
    Atribuição de endereço IP Estática
    Endereço IP privado Especifique um endereço IP disponível na sub-rede.
    Subscrição Se tiver várias subscrições, este campo poderá aparecer. Selecione a subscrição que pretende associar a este recurso. Normalmente, é a mesma assinatura que todos os recursos para o grupo de disponibilidade.
    Grupo de recursos Selecione o grupo de recursos em que as instâncias do SQL Server estão.
    Location Selecione o local do Azure em que as instâncias do SQL Server estão.
  6. Selecione Criar.

Importante

O recurso IP público para cada VM do SQL Server deve ter uma SKU padrão para ser compatível com o balanceador de carga padrão. Para determinar a SKU do recurso IP público da VM, vá para Grupo de Recursos, selecione o recurso Endereço IP Público para a VM do SQL Server e localize o valor em SKU no painel Visão geral.

Criar ouvinte

Crie o ouvinte do grupo de disponibilidade e configure o balanceador de carga interno automaticamente usando o modelo de início rápido 101-sql-vm-aglistener-setup . O modelo provisiona o recurso Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/AvailabilityGroupListener. O modelo de início rápido 101-sql-vm-aglistener-setup , por meio da extensão SQL IaaS Agent, executa as seguintes ações:

  • Cria um novo recurso IP frontend (com base no valor do endereço IP fornecido durante a implantação) para o ouvinte.
  • Define as configurações de rede para o cluster e o balanceador de carga interno.
  • Configura o pool de back-end para o balanceador de carga interno, a sonda de integridade e as regras de balanceamento de carga.
  • Cria o ouvinte do grupo de disponibilidade com o endereço IP e o nome fornecidos.

Nota

Você pode usar 101-sql-vm-aglistener-setup somente se o cluster de failover do Windows tiver sido criado com o modelo 101-sql-vm-ag-setup.

Para configurar o balanceador de carga interno e criar o ouvinte do grupo de disponibilidade, faça o seguinte:

  1. Vá para o modelo de início rápido sql-vm-aglistener-setup e selecione Implantar no Azure para iniciar o modelo de início rápido no portal do Azure.

  2. Preencha os campos necessários para configurar o balanceador de carga interno e criar o ouvinte do grupo de disponibilidade. Pode deixar os campos opcionais em branco.

    A tabela a seguir mostra os valores necessários para o modelo:

    Campo Valor
    Grupo de recursos O grupo de recursos onde existem as VMs e o grupo de disponibilidade do SQL Server.
    Nome do cluster de failover existente O nome do cluster ao qual suas VMs do SQL Server estão associadas.
    Grupo de Disponibilidade SQL Existente O nome do grupo de disponibilidade do qual suas VMs do SQL Server fazem parte.
    Lista Vm existente Os nomes das VMs do SQL Server que fazem parte do grupo de disponibilidade mencionado anteriormente. Separe os nomes com uma vírgula e um espaço (por exemplo: SQLVM1, SQLVM2).
    Ouvinte O nome DNS que você deseja atribuir ao ouvinte. Por padrão, esse modelo especifica o nome "aglistener", mas você pode alterá-lo. O nome não deve exceder 15 caracteres.
    Porta do ouvinte A porta que você deseja que o ouvinte use. Normalmente, essa porta deve ser o padrão de 1433. Este é o número da porta que o modelo especifica. Mas se a porta padrão tiver sido alterada, a porta do ouvinte deverá usar esse valor.
    IP do ouvinte O endereço IP que você deseja que o ouvinte use. Esse endereço será criado durante a implantação do modelo, portanto, forneça um que ainda não esteja em uso.
    Sub-rede existente O nome da sub-rede interna de suas VMs do SQL Server (por exemplo: padrão). Você pode determinar esse valor indo para Grupo de Recursos, selecionando sua rede virtual, selecionando Sub-redes no painel Configurações e copiando o valor em Nome.
    Balanceador de carga interno existente O nome do balanceador de carga interno que você criou na etapa 3.
    Porta da sonda A porta de teste que você deseja que o balanceador de carga interno use. O modelo usa 59999 por padrão, mas você pode alterar esse valor.
  3. Se você concordar com os termos e condições, marque a caixa de seleção Concordo com os termos e condições indicados acima . Selecione Comprar para concluir a implantação do modelo de início rápido.

  4. Para monitorar sua implantação, selecione a implantação no ícone de sino de notificações no banner de navegação superior ou vá para Grupo de Recursos no portal do Azure. Selecione Implantações em Configurações e escolha a implantação Microsoft.Template.

Nota

Se sua implantação falhar no meio do caminho, você precisará remover manualmente o ouvinte recém-criado usando o PowerShell antes de reimplantar o modelo de início rápido 101-sql-vm-aglistener-setup .

Remover ouvinte

Se, posteriormente, precisar remover o ouvinte do grupo de disponibilidade que o modelo configurou, você deverá passar pela extensão do SQL IaaS Agent. Como o ouvinte é registrado por meio da extensão do SQL IaaS Agent, apenas excluí-lo por meio do SQL Server Management Studio é insuficiente.

O melhor método é excluí-lo por meio da extensão do SQL IaaS Agent usando o seguinte trecho de código no PowerShell. Isso remove os metadados do ouvinte do grupo de disponibilidade da extensão do SQL IaaS Agent. Ele também exclui fisicamente o ouvinte do grupo de disponibilidade.

# Remove the availability group listener
# example: Remove-AzResource -ResourceId '/subscriptions/a1a11a11-1a1a-aa11-aa11-1aa1a11aa11a/resourceGroups/SQLAG-RG/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/Cluster/availabilitygrouplisteners/aglistener' -Force
Remove-AzResource -ResourceId '/subscriptions/<SubscriptionID>/resourceGroups/<resource-group-name>/providers/Microsoft.SqlVirtualMachine/SqlVirtualMachineGroups/<cluster-name>/availabilitygrouplisteners/<listener-name>' -Force

Common errors (Erros comuns)

Esta seção discute alguns problemas conhecidos e sua possível resolução.

O ouvinte do grupo de disponibilidade para o grupo de disponibilidade 'AG-Name>' já existe O grupo de disponibilidade selecionado usado no modelo de início rápido do Azure para o ouvinte do grupo de< disponibilidade já contém um ouvinte. Ele está fisicamente dentro do grupo de disponibilidade ou seus metadados permanecem na extensão do SQL IaaS Agent. Remova o ouvinte usando o PowerShell antes de reimplantar o modelo de início rápido 101-sql-vm-aglistener-setup .

A conexão só funciona a partir da réplica primária Esse comportamento provavelmente é de uma falha na implantação do modelo 101-sql-vm-aglistener-setup que deixou a configuração do balanceador de carga interno em um estado inconsistente. Verifique se o pool de back-end lista o conjunto de disponibilidade e se existem regras para o teste de integridade e para as regras de balanceamento de carga. Se algo estiver faltando, a configuração do balanceador de carga interno é um estado inconsistente.

Para resolver esse comportamento, remova o ouvinte usando o PowerShell, exclua o balanceador de carga interno por meio do portal do Azure e comece novamente na etapa 3.

BadRequest - Somente a lista de máquinas virtuais SQL pode ser atualizada Esse erro pode ocorrer quando você está implantando o modelo 101-sql-vm-aglistener-setup se o ouvinte foi excluído por meio do SQL Server Management Studio (SSMS), mas não foi excluído da extensão do SQL IaaS Agent. A exclusão do ouvinte por meio do SSMS não remove os metadados do ouvinte da extensão do SQL IaaS Agent. O ouvinte deve ser excluído do provedor de recursos por meio do PowerShell.

Conta de domínio não existe Este erro pode ter duas causas. A conta de domínio especificada não existe ou faltam os dados do Nome Principal do Usuário (UPN). O modelo 101-sql-vm-ag-setup espera uma conta de domínio no formato UPN (ou seja, user@domain.com), mas algumas contas de domínio podem estar faltando. Isso normalmente acontece quando um usuário local foi migrado para ser a primeira conta de administrador de domínio, quando o servidor foi promovido a um controlador de domínio ou quando um usuário foi criado por meio do PowerShell.

Verifique se a conta existe. Se isso acontecer, você pode estar se deparando com a segunda situação. Para resolvê-lo, faça o seguinte:

  1. No controlador de domínio, abra a janela Usuários e Computadores do Ative Directory na opção Ferramentas no Gerenciador do Servidor.

  2. Vá para a conta selecionando Usuários no painel esquerdo.

  3. Clique com o botão direito do mouse na conta e selecione Propriedades.

  4. Selecione a guia Conta. Se a caixa Nome de logon do usuário estiver em branco, essa é a causa do erro.

    Blank user account indicates missing UPN

  5. Preencha a caixa Nome de logon do usuário para corresponder ao nome do usuário e selecione o domínio adequado na lista suspensa.

  6. Selecione Aplicar para salvar as alterações e feche a caixa de diálogo selecionando OK.

Depois de fazer essas alterações, tente implantar o modelo de início rápido do Azure mais uma vez.

Próximos passos

Para saber mais, consulte: