Configure o SQL Server no Google Cloud através dos volumes NetApp do Google Cloud

Este tutorial oferece uma vista geral de como configurar um ambiente altamente resiliente Google Cloud para o SQL Server instalado no armazenamento de partilha de ficheiros (SMB) do bloco de mensagens do servidor através dos volumes NetApp do Google Cloud.

Os grupos de disponibilidade Always On (AG) do Microsoft SQL Server permitem-lhe replicar bases de dados em várias instâncias do SQL Server Enterprise. Normalmente, as instâncias Always On do SQL Server tradicionais requerem que cada nó mantenha uma cópia dos dados, o que pode tornar-se rapidamente dispendioso à medida que as bases de dados crescem. Por exemplo, numa implementação tradicional do SQL Server Always On, se as bases de dados tiverem um tamanho de 10 TB, cada réplica tem de ter, pelo menos, 10 TB de armazenamento aprovisionado. Uma das vantagens de ter um cluster de comutação por falha do Windows Server (WSFC) implementado para o SQL Server é que só precisa de ter uma cópia dos dados, que é partilhada entre os nós do cluster. Por conseguinte, a execução do SQL Server Always On numa instância de cluster de comutação por falha (FCI) num WSFC pode gerar imediatamente poupanças de custos reduzindo a quantidade de armazenamento necessária.

O NetApp Volumes é uma solução de armazenamento na nuvem para executar cargas de trabalho do SQL Server de elevado desempenho em combinação com instâncias do Compute Engine. A base de dados do SQL Server através de SMB em volumes NetApp oferece um nível de resiliência muito elevado entre as instâncias e o serviço de armazenamento. Google Cloud A comutação em caso de falha transparente do SMB permite operações de manutenção nos volumes NetApp sem interromper a conetividade com as aplicações de servidor que armazenam e acedem a dados em volumes SMB. Para suportar a comutação em alternativa transparente de SMB, os volumes NetApp suportam a opção de partilhas de disponibilidade contínua (CA) de SMB para utilização com cargas de trabalho do SQL Server. Isto oferece melhorias de desempenho, escalabilidade e vantagens de custo para instâncias únicas, instâncias de cluster de comutação por falha sempre ativas (AOFC) e implementações de grupos de disponibilidade sempre ativos.

Esta página destina-se aos administradores de volumes NetApp e de bases de dados do SQL Server responsáveis pela implementação do Microsoft SQL Server no Google Cloud. Assume o seguinte:

  • Conhece os vários componentes da solução
  • Já implementou o Active Directory no Google Cloud

Prepare o seu projeto e rede

Para preparar o seu Google Cloud projeto e nuvem privada virtual (VPC) para a implementação de grupos de disponibilidade Always On do SQL Server, faça o seguinte:

  1. Na Google Cloud consola, abra o Cloud Shell clicando no botão Ativar Cloud Shell Ative o Cloud Shell..

    Aceda à Google Cloud consola

  2. Inicialize as seguintes variáveis:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Substitua o seguinte:

    • VPC_NAME: nome da sua VPC
    • SUBNET_NAME: nome da sua sub-rede
  3. Defina o seu ID do projeto predefinido:

    gcloud config set project PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do seu Google Cloud projeto.

  4. Predefina a sua região:

    gcloud config set compute/region REGION
    

    Substitua REGION pelo ID da região na qual quer fazer a implementação.

  5. Predefina a sua zona:

    gcloud config set compute/zone ZONE
    

    Substitua ZONE pelo ID da zona na qual quer fazer a implementação.

Crie SMB em volumes NetApp para o SQL Server

Para criar um NetApp Volumes, tem de criar uma política do Active Directory, um acesso aos serviços privados, um conjunto de armazenamento e um volume de armazenamento.

  1. Crie um novo acesso a serviços privados para volumes NetApp através das instruções fornecidas em Configure o acesso a serviços privados.

  2. Para criar uma nova política do Active Directory, faça o seguinte:

    1. Na Google Cloud consola, aceda à página Volumes do NetApp.

      Aceda a NetApp Volumes

    2. No painel de navegação, clique em Políticas do Active Directory na secção Políticas.

    3. Clique no botão Criar.

    4. Especifique um nome para a política do Active Directory.

    5. Em Região, selecione a região disponível mais próxima de onde as instâncias do SQL Server vão ser alojadas.

    6. Na secção Detalhes da ligação do Active Directory, faculte as seguintes informações:

      1. Nome do domínio
      2. Endereços do servidor DNS do Active Directory
      3. Nome do site do Active Directory
      4. Nome da unidade organizacional
      5. Prefixo do nome NetBIOS
    7. Na secção Credenciais do Active Directory, indique as credenciais de um utilizador que tem autorização para associar computadores ao domínio especificado.

    8. Na secção Definições de SMB, indique os Operadores de cópias de segurança e os Utilizadores com privilégios de segurança, se aplicável.

    9. Clique em Criar para concluir o processo de criação de uma nova política do Active Directory.

  3. Para criar um novo conjunto de armazenamento, faça o seguinte:

    1. No painel de navegação, clique em Pools de armazenamento na secção Armazenamento.
    2. Clique no botão Criar.
    3. Introduza um nome para o conjunto de armazenamento.
    4. Em Localização, selecione a região disponível mais próxima de onde as instâncias do SQL Server vão ser alojadas.
    5. Selecione um nível de serviço que satisfaça o desempenho de armazenamento esperado.

    6. Introduza a capacidade do conjunto de armazenamento. A capacidade do conjunto de armazenamento define a capacidade de armazenamento total que pode ser atribuída a todos os volumes no conjunto.

    7. Na lista Rede, selecione a VPC na qual as instâncias do SQL Server vão ser alojadas.

    8. Na secção Política do Active Directory, selecione Atribuir uma política do Active Directory ao conjunto de armazenamento e selecione a política do Active Directory criada no passo anterior.

    9. Clique no botão Criar para concluir o processo de criação de um novo conjunto de armazenamento.

  4. Para testar a ligação entre o conjunto de armazenamento e o Active Directory, faça o seguinte:

    1. Na Google Cloud consola, aceda à página Política do Active Directory.

      Aceda às políticas do Active Directory

    2. Clique na política do Active Directory que atribuiu ao conjunto de armazenamento no passo anterior.

    3. Localize Pools de armazenamento associados e clique em Testar ligação do Active Directory.

  5. Para criar um novo volume de armazenamento, faça o seguinte:

    1. No painel de navegação, clique em Volumes na secção Armazenamento.
    2. Clique no botão Criar.
    3. Especifique um nome para o volume de armazenamento.
    4. Em Detalhes do conjunto de armazenamento, clique em Selecionar conjunto de armazenamento para selecionar o conjunto de armazenamento criado no passo anterior.
    5. Na secção Detalhes do volume, faculte as seguintes informações:
      1. Partilhar nome
      2. Capacidade de volume
    6. Na secção Configuração de protocolos, selecione o protocolo SMB e Ativar suporte de partilha da AC para SQL Server, FSLogix.
    7. Clique no botão Criar para concluir o processo de criação de um novo volume de armazenamento.

Crie regras de firewall

Para permitir que os clientes se liguem ao SQL Server, permita a comunicação entre os nós do cluster de failover do Windows Server (WSFC) e, para permitir que o equilibrador de carga realize verificações de estado, tem de criar várias regras de firewall. Para simplificar a criação destas regras de firewall, pode usar etiquetas de rede:

  • Os WSFCs que usa estão anotados com a etiqueta wsfc-node.
  • Todos os servidores, incluindo o servidor de testemunho, são anotados com a etiqueta wsfc.

Para criar regras de firewall que usem estas etiquetas de rede, siga estes passos:

  1. Regresse à sua sessão do Cloud Shell existente.
  2. Crie regras de firewall para os nós do WSFC.

    SUBNET_CIDR=$(gcloud compute networks subnets describe $SUBNET_NAME --format=value\('ipCidrRange'\))
    
    gcloud compute firewall-rules create allow-all-between-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp,udp,icmp \
      --enable-logging \
      --source-tags=wsfc \
      --target-tags=wsfc \
      --network=$VPC_NAME \
      --priority 10000
    
    gcloud compute firewall-rules create allow-sql-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp:1433 \
      --enable-logging \
      --source-ranges=$SUBNET_CIDR \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    
  3. Crie uma regra de firewall que permita verificações de funcionamento a partir dos intervalos de IP dos Google Cloud testadores:

    gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \
      --direction=INGRESS \
      --action=allow \
      --rules=tcp \
      --source-ranges=130.211.0.0/22,35.191.0.0/16 \
      --target-tags=wsfc-node \
      --network=$VPC_NAME \
      --priority 10000
    

Crie instâncias de VM

Agora, vai implementar três instâncias de VM para o cluster de comutação por falha.

Node-1 aloja a réplica principal da base de dados do SQL Server e node-2 aloja a réplica secundária. As duas instâncias de VM têm de:

  • Estar localizadas na mesma região para que possam ser acedidas por um balanceador de carga de rede de passagem interno
  • Têm o WSFC e o SQL Server 2022 instalados através da imagem premium do SQL Server

  • Ter o suporte do WSFC do Compute Engine ativado

Para fornecer um voto de desempate e alcançar um quórum para o cenário de comutação por falha, implementa uma terceira instância de VM node-3 que funciona como um teste de partilha de ficheiros.

  1. Regresse à sua sessão do Cloud Shell existente.
  2. Crie um script para os nós do WSFC. O script instala a funcionalidade do Windows necessária e cria regras de firewall para o WSFC e o SQL Server:

    cat << "EOF" > specialize-node.ps1
    
    $ErrorActionPreference = "stop"
    
    # Install required Windows features
    Install-WindowsFeature Failover-Clustering -IncludeManagementTools
    Install-WindowsFeature RSAT-AD-PowerShell
    
    # Open firewall for WSFC
    netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997
    
    # Open firewall for SQL Server
    netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433
    
    # Open firewall for SQL Server replication
    netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
    
    EOF
    
  3. Crie as instâncias de VM. Nas duas VMs que funcionam como nós do WSFC, anexe um disco de dados adicional e ative o clustering de failover do Windows Server definindo a chave de metadados enable-wsfc como true:

    REGION=$(gcloud config get-value compute/region)
    PD_SIZE=200
    MACHINE_TYPE=n2-standard-8
    
    gcloud compute instances create node-1 \
      --zone $REGION-a \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-1" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create node-2 \
      --zone $REGION-b \
      --machine-type $MACHINE_TYPE \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --tags wsfc,wsfc-node \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --boot-disk-device-name "node-2" \
      --metadata enable-wsfc=true \
      --metadata-from-file=sysprep-specialize-script-ps1=specialize-node.ps1
    
    gcloud compute instances create "witness" \
      --zone $REGION-c \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family=windows-2022 \
      --image-project=windows-cloud \
      --tags wsfc \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd \
      --metadata sysprep-specialize-script-ps1="add-windowsfeature FS-FileServer"
    
  4. Para associar as 3 instâncias de VM ao Active Directory, faça o seguinte para cada uma das 3 instâncias de VM:

    1. Monitorize o processo de inicialização da VM vendo a respetiva saída da porta de série:

      gcloud compute instances tail-serial-port-output NAME
      

      Substitua NAME pelo nome da instância de VM.

      Aguarde alguns minutos até ver o resultado Instance setup finished e, em seguida, prima Ctrl+C. Neste momento, a instância de VM está pronta a ser usada.

    2. Crie um nome de utilizador e uma palavra-passe para a instância de VM

    3. Estabeleça ligação à VM através do Ambiente de Trabalho Remoto e inicie sessão com o nome de utilizador e a palavra-passe criados no passo anterior.

    4. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).

    5. Clique em Sim para confirmar o pedido de elevação.

    6. Associe a instância de VM ao seu domínio do Active Directory e reinicie:

      Add-Computer -Domain DOMAIN -Restart
      

      Substitua DOMAIN pelo nome DNS do seu domínio do Active Directory.

      Aguarde que a instância de VM seja reiniciada.

Atribua autorizações de armazenamento

Para atribuir autorizações ao armazenamento de volume na nuvem, conclua os seguintes passos:

  1. Na Google Cloud consola, selecione Volumes na nuvem e selecione o volume que acabou de criar.

    Volume das nuvens

  2. Ligue-se a node-1 através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.

  3. Abra o Explorador do Windows e clique com o botão direito do rato em Este PC.

  4. Selecione Mapear unidade de rede.

  5. Cole o caminho SMB copiado na pasta.

    Volume das nuvens

  6. No início de sessão, desative a opção Voltar a associar.

  7. Clique em Concluir.

  8. Clique com o botão direito do rato na unidade de rede mapeada e selecione Propriedades.

    Volume das nuvens

  9. No separador Segurança, clique em Editar.

  10. Remova todos e adicione o instalador do SQL Server e as contas de serviço do SQL Server com autorizações de controlo total.

    Volume das nuvens

  11. Clique em Sim para confirmar o pedido de elevação.

Reserve endereços IP do cluster

Reserve dois endereços IP estáticos na sua VPC, um para o endereço IP do cluster WSFC e outro para o equilibrador de carga interno.

  1. Reserve um IP estático para o equilibrador de carga interno e capture o endereço numa nova variável de ambiente denominada LOADBALANCER_ADDRESS:

    gcloud compute addresses create wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --subnet $SUBNET_NAME
    
    LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\))
    
    echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
    

    Tome nota do endereço IP, pois vai precisar dele mais tarde.

  2. Reserve outro endereço IP estático que usa como IP do cluster:

    gcloud compute addresses create wsfc-cluster \
      --subnet $SUBNET_NAME \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev)
    
    CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \
      --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \
      --format=value\(address\))
    
    echo "Cluster IP: $CLUSTER_ADDRESS"
    

    Tome nota do endereço IP, pois vai precisar dele mais tarde.

O projeto e a VPC estão agora prontos para a implementação do WSFC e do SQL Server.

Crie uma partilha de ficheiros de testemunho

Para preparar witness para funcionar como testemunha de partilha de ficheiros, crie uma partilha de ficheiros e conceda-se a si próprio e aos dois nós do WSFC acesso à partilha de ficheiros:

  1. Ligue-se a witness através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.
  2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
  3. Clique em Sim para confirmar o pedido de elevação.
  4. Crie a pasta de testemunho e partilhe-a:

    New-Item "C:\QWitness" –type directory
    
    icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)'
    icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)'
    
    New-SmbShare `
      -Name QWitness `
      -Path "C:\QWitness" `
      -Description "SQL File Share Witness" `
      -FullAccess  $env:username,node-1$,node-2$
    

Implementar o cluster de comutação por falha

Agora, vai usar as instâncias de VM para implementar um WSFC e o SQL Server.

Implemente o WSFC

Já tem tudo pronto para criar o cluster de failover:

  1. Ligue-se a node-1 através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.
  2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
  3. Clique em Sim para confirmar o pedido de elevação.
  4. Crie um novo cluster:

    New-Cluster `
      -Name windows-fci `
      -Node node-1,node-2 `
      -NoStorage `
      -StaticAddress CLUSTER_ADDRESS
    

    Substitua CLUSTER_ADDRESS pelo endereço IP do cluster que criou anteriormente.

  5. Regresse à sessão do PowerShell em witness e conceda ao objeto de computador virtual do cluster autorização para aceder à partilha de ficheiros:

    icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)'
    Grant-SmbShareAccess `
      -Name QWitness `
      -AccountName 'windows-fci$' `
      -AccessRight Full `
      -Force
    
  6. Regresse à sessão do PowerShell em node-1 e configure o cluster para usar a partilha de ficheiros em witness como um quorum de cluster:

    Set-ClusterQuorum -FileShareWitness \\witness\QWitness
    
  7. Verifique se o cluster foi criado com êxito:

    Test-Cluster
    

    Pode ver alguns avisos que podem ser ignorados com segurança:

    WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings..
    WARNING: Network - Validate Network Communication: The test reported some warnings..
    WARNING:
    Test Result:
    HadUnselectedTests, ClusterConditionallyApproved
    Testing has completed for the tests you selected. You should review the warnings in the Report.  A cluster solution is
    supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
    

    Também pode iniciar o snap-in MMC do Gestor de clusters de failover para rever o estado do cluster executando cluadmin.msc.

  8. Se estiver a usar o AD gerido, adicione a conta do computador usada pelo WSFC ao grupo Cloud Service Domain Join Accounts para que possa associar instâncias de VMs ao domínio:

    Add-ADGroupMember `
      -Identity "Cloud Service Domain Join Accounts" `
      -Members windows-fci$
    

Remova a instalação predefinida do SQL Server

Agora, vai remover a instalação predefinida do SQL Server dos dois nós e substituí-la por uma nova configuração de FCI.

Para cada um dos dois nós do WSFC, node-1 e node-2, siga estes passos:

  1. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
  2. Clique em Sim para confirmar o pedido de elevação.
  3. Remova a instância predefinida do SQL Server:

    C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
    
  4. Remova o controlador OLE da Microsoft:

    Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
    
  5. Remova o controlador ODBC da Microsoft:

    Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
    
  6. Reinicie o computador:

    Restart-Computer
    
  7. Aguarde que a instância de VM seja reiniciada.

Instale o FCI do SQL Server

Antes de instalar a nova configuração de FCI, verifique se o node-1 é o nó ativo no cluster:

  1. Volte a ligar-se ao node-1 através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do domínio.
  2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e selecione Executar
  3. Introduza cluadmin.msc e selecione OK.
  4. No painel da janela do lado esquerdo, navegue para Gestor de clusters de failover > windows-fci e faça o seguinte:

    1. Verifique se o servidor anfitrião atual está definido como node-1.

    2. Se o servidor anfitrião atual estiver definido como node-2, clique com o botão direito do rato em windows-fci no painel da janela do lado esquerdo e selecione Mais ações > Mover recursos do cluster principal > Selecionar nó… > node-1 e clique em OK.

Vai criar uma nova instalação de cluster de failover do SQL Server em node-1:

  1. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
  2. Clique em Sim para confirmar o pedido de elevação.

  3. Inicie a configuração do SQL Server:

    & c:\sql_server_install\setup.exe
    
  4. No menu do lado esquerdo, selecione Instalação.

  5. Selecione Nova instalação do cluster de comutação por falha do SQL Server.

  6. Na página Edição, introduza a chave do produto, selecione o tipo de licença do software e clique em Seguinte.

  7. Na página Termos de licença, reveja os termos e, se os aceitar, clique em Seguinte.

  8. Na página Microsoft Update, clique em Seguinte para iniciar a instalação.

  9. Na página Instalar regras de cluster de failover, é apresentado um aviso Avisos de validação de cluster do MSCS e Firewall do Windows. Pode ignorar estes avisos e clicar em Seguinte.

  10. Na página Seleção de funcionalidades, selecione Serviços do motor de base de dados e clique em Seguinte.

  11. Na página Configuração da instância, introduza sql como nome da rede e clique em Seguinte.

  12. Na página Grupo de recursos do cluster, pode ignorar os avisos de qualificação e clicar em Seguinte.

  13. Na página Cluster Disk Selection (Seleção de disco do cluster), clique em Next (Seguinte).

  14. Na página Configuração da rede de clusters, configure as seguintes definições e, de seguida, clique em Seguinte:

    • DHCP: clear
    • Endereço IP: introduza o endereço IP do balanceador de carga interno
  15. Na página Configuração do servidor, configure as seguintes definições para o SQL Server Agent e o SQL Server Database Engine:

    • Nome da conta: DOMAIN\sql_server, onde DOMAIN é o nome NetBIOS do seu domínio do Active Directory
    • Palavra-passe: introduza a palavra-passe do utilizador sql_server
  16. Selecione o separador Ordenação e selecione a ordenação que quer usar. Em seguida, clique em Seguinte.

  17. Na página Configuração do motor de base de dados, selecione Adicionar utilizador atual para designar o utilizador atual como administrador do SQL Server. No separador Diretórios de dados, introduza o caminho SMB no campo Diretório raiz de dados e selecione Seguinte. É apresentada uma janela de mensagem a informar que deve verificar se a conta de serviço do SQL Server tem autorização de partilha de controlo total. Selecione Sim para continuar.

    Volume das nuvens

  18. Na página Pronto para instalar, reveja as definições e, de seguida, selecione Instalar.

  19. Após a conclusão da instalação, selecione Fechar.

Agora, adicione node-2 ao cluster de comutação por falha do SQL Server:

  1. Estabeleça ligação a node-2 através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do seu domínio.
  2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
  3. Clique em Sim para confirmar o pedido de elevação.
  4. Inicie a configuração do SQL Server:

    & c:\sql_server_install\setup.exe
    
  5. No menu do lado esquerdo, selecione Instalação.

  6. Selecione Adicionar nó a um cluster de comutação por falha do SQL Server.

  7. Siga as instruções do assistente de instalação e aceite as definições predefinidas até aceder à página Contas de serviço.

  8. Na página Contas de serviço, introduza a palavra-passe que criou anteriormente para o SQL Server Agent e o SQL Server Database Engine. Em seguida, selecione Seguinte.

  9. Na página Pronto para instalar, reveja as definições e, de seguida, selecione Instalar.

  10. Após a conclusão da instalação, selecione Fechar.

Configure verificações de funcionamento

Como passo final, configure o cluster para expor um ponto final de verificação do estado que pode ser usado por um equilibrador de carga interno:

  1. Regresse à sessão do PowerShell em node-2
  2. Inicialize uma variável com o endereço IP do balanceador de carga.

    $LoadBalancerIP = 'IP_ADDRESS'
    

    Substitua IP_ADDRESS pelo endereço IP do endereço wsfc que reservou anteriormente.

  3. Configure o cluster de comutação por falha para responder ao serviço de verificação de funcionamento:

    $SqlGroup = Get-ClusterGroup |
      Where-Object {$_.Name.StartsWith("SQL Server")}
    $SqlIpAddress = Get-ClusterResource |
      Where-Object {$_.Name.StartsWith("SQL IP Address")}
    
    $SqlIpAddress | Set-ClusterParameter -Multiple @{
     'Address'=$LoadBalancerIP;
     'ProbePort'= 59997;
     'SubnetMask'='255.255.255.255';
     'Network'= (Get-ClusterNetwork).Name;
     'EnableDhcp'=0; }
    
  4. Reinicie o recurso de cluster:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. Reinicie o grupo de clusters:

    $SqlGroup | Stop-ClusterGroup
    $SqlGroup | Start-ClusterGroup
    

Crie um balanceador de carga interno

Para fornecer um único ponto final para clientes do SQL Server, vai implementar um equilibrador de carga interno. O balanceador de carga usa uma verificação do estado que garante que o tráfego é direcionado para o nó ativo do WSFC.

  1. Regresse à sua sessão do Cloud Shell existente.
  2. Crie um grupo de instâncias não gerido e adicione os dois nós ao grupo:

    REGION=$(gcloud config get-value compute/region)
    
    gcloud compute instance-groups unmanaged create wsfc-group-a \
      --zone $REGION-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a \ 
      --zone $REGION-a --instances node-1
    
    gcloud compute instance-groups unmanaged create wsfc-group-b \
      --zone $REGION-b
    gcloud compute instance-groups unmanaged add-instances wsfc-group-b \ 
    --zone $REGION-b --instances node-2
    
  3. Crie uma verificação de funcionamento que o balanceador de carga possa usar para determinar qual é o nó ativo.

    gcloud compute health-checks create tcp wsfc-healthcheck \
      --check-interval="2s" \
      --healthy-threshold=1 \
      --unhealthy-threshold=2 \
      --port=59997 \
      --timeout="1s"
    

    A porta de sondas de verificação do estado de funcionamento é a 59997, que é a porta que configurou anteriormente como ProbePort para o endereço IP do cluster WSFC.

  4. Crie um serviço de back-end e adicione o grupo de instâncias:

    gcloud compute backend-services create wsfc-backend \
      --load-balancing-scheme internal \
      --region $REGION \
      --health-checks wsfc-healthcheck \
      --protocol tcp
    
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-a \
      --instance-group-zone $REGION-a \
      --region $REGION
    gcloud compute backend-services add-backend wsfc-backend \
      --instance-group wsfc-group-b \
      --instance-group-zone $REGION-b \
      --region $REGION
    
  5. Crie o balanceador de carga interno:

    gcloud compute forwarding-rules create wsfc-sql \
      --load-balancing-scheme internal \
      --address $LOADBALANCER_ADDRESS \
      --ports 1433 \
      --network $VPC_NAME \
      --subnet $SUBNET_NAME \
      --region $REGION \
      --backend-service wsfc-backend
    

Testar o cluster de comutação por falha

Concluiu a instalação do cluster de ativação pós-falha, mas ainda tem de testar se o cluster funciona corretamente.

Prepare um cliente

Crie uma nova instância de VM que pode usar para se ligar ao cluster de failover:

  1. Regresse à sua sessão do Cloud Shell existente.
  2. Criar uma nova instância de VM:

    gcloud compute instances create sqlclient \
      --machine-type n2-standard-2 \
      --subnet $SUBNET_NAME \
      --image-family sql-ent-2022-win-2022 \
      --image-project windows-sql-cloud \
      --boot-disk-size 50 \
      --boot-disk-type pd-ssd
    
  3. Monitorize o processo de inicialização da VM vendo a respetiva saída da porta de série:

    gcloud compute instances tail-serial-port-output sqlclient
    

    Aguarde alguns minutos até ver a saída Instance setup finished e, de seguida, prima Ctrl+C. Neste momento, a instância de VM está pronta a ser usada.

  4. Crie um nome de utilizador e uma palavra-passe para a instância de VM

  5. Estabeleça ligação à VM através do Ambiente de Trabalho Remoto e inicie sessão com o nome de utilizador e a palavra-passe criados no passo anterior.

  6. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).

  7. Clique em Sim para confirmar o pedido de elevação.

  8. Associe a instância de VM ao seu domínio do Active Directory:

    Add-Computer -Domain DOMAIN
    

    Substitua DOMAIN pelo nome DNS do seu domínio do Active Directory.

  9. Reinicie a instância de VM:

    Restart-Computer
    

    Aguarde que a instância de VM seja reiniciada.

Execute o teste

Use a VM sqlclient para testar se consegue estabelecer ligação ao cluster de comutação por falha e para verificar se a comutação por falha funciona corretamente:

  1. Estabeleça ligação a sqlclient através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do seu domínio.
  2. Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell.
  3. Estabeleça ligação ao cluster do SQL Server através do respetivo nome de rede sql e consulte a tabela dm_os_cluster_nodes:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    O resultado deve ter o seguinte aspeto:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   0 up                                1
    NODE-2                                   0 up                                0
    
    (2 rows affected)
    

    Tenha em atenção que node-1 é o proprietário atual do recurso de cluster de comutação por falha do SQL Server.

  4. Regresse ao Cloud Shell e desative a VM node-1 para testar o cenário de comutação por falha:

    gcloud compute instances stop node-1
    
  5. Repetir a consulta:

    & "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" `
       -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    

    O resultado deve ter agora o seguinte aspeto:

    NodeName                       status      status_description is_current_owner
    ------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    

    Repare que, apesar da perda de node-1, a consulta é bem-sucedida e mostra que node-2 é agora o proprietário atual do cluster de comutação por falha.