DBAtlas · Atlas de operações de banco de dados

SQL Server Always On Availability Group (Linux, Pacemaker)

SQL ServerNível: AvançadoDuração: 120–180 min

Monta um Always On AG gerenciado pelo Pacemaker a partir de três servidores Linux (RHEL 9 ou Ubuntu 22.04) com SQL Server 2022 instalado: mssql-server-ha, hadr.hadrenabled, endpoints de espelhamento autenticados por certificado, AG com CLUSTER_TYPE = EXTERNAL (3 réplicas síncronas ou 2 síncronas + configuration-only), automatic seeding, cluster pacemaker/corosync/pcs, fencing (STONITH), recurso ocf:mssql:ag, recurso de IP do listener e constraints, teste do listener e de failover planejado. O resultado é um AG em que o Pacemaker faz failover automático quando o primary cai e o IP do listener acompanha o primary.

Instale antes cada node com a instalação do SQL Server no Linux. Para Windows e WSFC, veja Always On AG (Windows); para a operação diária e falhas de um AG existente, veja Operação do AG.

Topologia: 3 nodes Linux: 3 réplicas síncronas ou 2 síncronas + uma réplica configuration-only

Antes de começar

  • SQL Server 2022 instalado nos três nodes com a mesma versão e CU (instalação no Linux)…; o node configuration-only também pode ser Express…, e … é sysadmin. Senha: read -rsp 'Senha: ' SQLCMDPASSWORD; export SQLCMDPASSWORD e sudo --preserve-env=SQLCMDPASSWORD bash <script>.sh.
  • Em cada node a saída de hostname é exatamente igual a @@SERVERNAME no SQL Server e coincide com o nome na lista de nodes. Se não coincidir, o recurso do Pacemaker não encontra a réplica (RESOLVING).
  • Os nodes resolvem uns aos outros pelo nome (DNS ou /etc/hosts) e estas portas estão abertas: SQL …/tcp, endpoint …/tcp, Pacemaker 2224/tcp, 3121/tcp, 5403/tcp, 21064/tcp, 5404–5405/udp. O IP do listener (…) não está em uso.
  • A assinatura RHEL e o High Availability Add-On estão ativos em cada node (repositório rhel-9-for-x86_64-highavailability-rpms).
  • Os relógios dos nodes estão sincronizados por NTP (chronyd / systemd-timesyncd); o corosync e os certificados são sensíveis à diferença de horário.
  • …O endereço do BMC (iLO/iDRAC/IPMI) de cada node é acessível a partir dos nodes; o usuário de fencing tem permissão para desligar/ligar.…O vCenter (…) é acessível a partir dos nodes em 443/tcp; a conta de fencing tem permissão para operações de energia nestas VMs.… A Red Hat só dá suporte aos métodos de fencing suportados (para a mesma plataforma de virtualização).
  • Senhas prontas e guardadas no cofre: master key do SQL, backup da private key do certificado, login …, usuário hacluster…, conta de fencing…. Os passos solicitam as senhas sem exibi-las na tela.
  • Janela de manutenção: os serviços do SQL Server são reiniciados uma vez (hadr.hadrenabled) e o teste de failover interrompe o listener por alguns segundos.

Fases do guia

  • Preparar os nodes — Adicionar os nomes dos nodes ao arquivo hosts · Abrir no firewall as portas do SQL, do endpoint e do Pacemaker
  • SQL Server: agente de HA, Always On e endpoints — Instalar o agente de HA do SQL Server (mssql-server-ha) · Habilitar o Always On e reiniciar o SQL Server · Iniciar a sessão AlwaysOn_health no startup · Criar o login do SQL Server e o arquivo de senha para o Pacemaker · Criar e fazer backup do certificado do endpoint (node 1) · Copiar os arquivos do certificado para os outros nodes (node 1) …
  • Availability Group (CLUSTER_TYPE = EXTERNAL) — Criar o AG (node 1) · Incluir o secondary no AG: … · Colocar o banco em recovery FULL, fazer backup e adicioná-lo ao AG (node 1) · Acompanhar o automatic seeding e a sincronização (node 1)
  • Cluster Pacemaker — Instalar Pacemaker, corosync e pcs · Definir a senha do hacluster e iniciar o pcsd · Limpar a configuração de cluster padrão do Ubuntu · Criar e iniciar o cluster (node 1) · Configurar o fencing (STONITH) (node 1) · Definir as propriedades do cluster (node 1) …
  • Listener — Criar o listener (node 1) · Testar a conexão pelo listener
  • Verificação e teste de failover — Verificar a saúde do AG · Teste de failover planejado: tornar … o primary · Failback: tornar … o primary novamente
  • Pós-instalação — Sincronizar logins, jobs e objetos de servidor · Configurar backup e monitoramento
Abrir o plano passo a passo para o seu ambiente →