Configurar o SQL Server no Google Cloud Platform usando o Cloud Volumes Service


Neste tutorial, apresentamos uma visão geral de como configurar um ambiente do Google Cloud altamente resiliente para o SQL Server instalado no armazenamento de compartilhamento de arquivos do bloco de mensagens do servidor (SMB) usando o NetApp Cloud Volumes Service (CVS) para o Google Cloud.

Os grupos de disponibilidade sempre ativados (AG, na sigla em inglês) do Microsoft SQL Server permitem replicar bancos de dados em várias instâncias do SQL Server Enterprise. As instâncias tradicionais sempre ativadas do SQL Server normalmente exigem que cada nó mantenha uma cópia dos dados, o que pode ficar caro à medida que os bancos de dados crescem. Por exemplo, em uma implantação tradicional sempre ativada do SQL Server, se os bancos de dados tiverem 10 TB de tamanho, cada réplica precisará ter pelo menos 10 TB de armazenamento provisionado. Um dos benefícios de ter um cluster de failover do Windows Server (WSFC) implantado no SQL Server é que você só precisa ter uma cópia dos dados, que é compartilhada entre os nós do cluster. Portanto, executar o SQL Server sempre ativado em uma instância de cluster de failover (FCI, na sigla em inglês) em um WSFC pode economizar imediatamente ao reduzir a quantidade de armazenamento necessária.

O Cloud Volumes Service da NetApp é uma solução de armazenamento em nuvem para executar cargas de trabalho de alto desempenho do SQL Server em combinação com instâncias do Compute Engine. O banco de dados do SQL Server para SMB no Cloud Volumes Service oferece um nível muito alto de resiliência entre as instâncias do Google Cloud e o serviço de armazenamento. O failover transparente SMB permite operações de manutenção no Cloud Volumes Service sem interromper a conectividade com aplicativos de servidor que armazenam e acessam dados em volumes SMB. Para oferecer suporte ao failover transparente para SMB, o Cloud Volumes Service aceita a opção de compartilhamentos de disponibilidade contínua (CA, na sigla em inglês) do SMB para uso com cargas de trabalho do SQL Server. Isso oferece melhorias de desempenho, escalonabilidade e benefícios de custo para instâncias únicas, instâncias de cluster de failover sempre ativado (AOFC, na sigla em inglês) e implantações de grupos de disponibilidade sempre ativados.

Esta página é destinada aos administradores de banco de dados do NetApp Cloud Volumes Service e do SQL Server responsáveis por implantar o Microsoft SQL Server no Google Cloud. Ela pressupõe o seguinte:

  • Você já conhece os vários componentes da solução
  • Você já implantou o Active Directory no Google Cloud

Objetivos

Este tutorial tem como objetivo atingir os seguintes objetivos:

  • Criar um volume do Cloud Volumes Service para SQL Server
  • Implante o cluster de failover sempre ativado sobre SMB no Cloud Volumes Service

Custos

Neste tutorial, há componentes faturáveis do Google Cloud, entre eles:

Use a Calculadora de preços para gerar uma estimativa de custo com base no uso previsto.

Antes de começar

Para este tutorial, você precisa de um projeto do Google Cloud. É possível criar um novo projeto ou selecionar um que já foi criado:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Um domínio do Active Directory atual com pelo menos um controlador de domínio. Crie um domínio do Active Directory usando o Microsoft AD gerenciado. Se preferir, implante um ambiente personalizado do Active Directory no Compute Engine e configure uma zona de encaminhamento de DNS particular que encaminhe consultas DNS aos controladores de domínio.
  4. Um usuário do Active Directory que tenha permissão para associar computadores ao domínio e pode fazer login usando o RDP. Se você estiver usando o Microsoft AD gerenciado, utilize o usuário setupadmin.
  5. Um projeto do Google Cloud e uma VPC com conectividade aos controladores de domínio do Active Directory.
  6. Verifique se a API NetApp Cloud Volumes está ativada para seu projeto do Google Cloud.
  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

Preparar seu projeto e sua rede

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

  1. No Console do Google Cloud, abra o Cloud Shell clicando no botão Ativar o Cloud Shell Ative o Cloud Shell..

    Acesse o Console do Google Cloud

  2. Inicialize as seguintes variáveis:

    VPC_NAME=VPC_NAME
    SUBNET_NAME=SUBNET_NAME
    

    Substitua:

    • VPC_NAME: nome da VPC
    • SUBNET_NAME: nome da sub-rede.
  3. Defina o ID do projeto padrão:

    gcloud config set project PROJECT_ID
    

    Substitua PROJECT_ID pelo ID do projeto do Google Cloud.

  4. Defina sua região padrão:

    gcloud config set compute/region REGION
    

    Substitua REGION pelo ID da região em que você quer implantar.

  5. Defina a zona padrão:

    gcloud config set compute/zone ZONE
    

    Substitua ZONE pelo ID da zona em que você quer implantar.

Criar SMB no Cloud Volumes Service para SQL Server

Para criar um volume do Cloud Volumes Service, crie uma política do Active Directory, um acesso a serviços particulares, um pool de armazenamento e um volume de armazenamento.

  1. Para criar um novo Acesso a serviços particulares, faça o seguinte:

    1. No console do Google Cloud, acesse a página Rede VPC.

      Acessar a rede VPC

    2. Clique no nome da rede VPC que será usada.

    3. Clique na guia Acesso a serviços particulares e em Alocar intervalo de IP.

      1. Digite um nome para o intervalo de IP interno.
      2. Selecione Automático e insira o valor 24 em Comprimento do prefixo.
      3. Clique no botão Alocar.
    4. Clique na guia Conexões particulares com serviços e faça o seguinte:

      1. Clique no botão Criar conexão.
      2. Selecione o intervalo de IP alocado anteriormente no menu suspenso Alocação atribuída.
      3. Clique no botão Conectar.
  2. Para criar uma nova política do Active Directory, faça o seguinte:

    1. No console do Google Cloud, acesse a página NetApp Volumes.

      Acessar o NetApp Volumes

    2. No painel de navegação, clique em Políticas do Active Directory na seçã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 serão hospedadas.

    6. Na seção Detalhes da conexão do Active Directory, forneça as seguintes informações:

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

    8. Na seção Configurações para SMB, informe os Operadores de backup e Usuários 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 pool de armazenamento, faça o seguinte:

    1. No painel de navegação, clique em Pools de armazenamento na seção Armazenamento.
    2. Clique no botão Criar.
    3. Insira um nome para o pool de armazenamento.
    4. Em Local, selecione a região disponível mais próxima de onde as instâncias do SQL Server serão hospedadas.
    5. Selecione um Nível de serviço que atenda ao desempenho esperado do armazenamento.
    6. Insira a Capacidade do pool de armazenamento. A capacidade do pool de armazenamento define a capacidade total de armazenamento que pode ser alocada para todos os volumes no pool.
    7. Na lista Rede, selecione a VPC em que as instâncias do SQL Server vão ser hospedadas, como a seguir:
      1. Clique no botão Configurar conexão.
      2. Selecione o intervalo de endereços IP reservado nas etapas anteriores e clique em Continuar.
      3. Clique no botão Criar conexão.
    8. Na seção Política do Active Directory, selecione Atribuir uma política do Active Directory ao pool de armazenamento e escolha a política do Active Directory criada na etapa anterior.
    9. Clique no botão Criar para concluir o processo de criação de um novo pool de armazenamento.
  4. Para criar um novo volume de armazenamento, faça o seguinte:

    1. No painel de navegação, clique em Volumes na seção Armazenamento.
    2. Clique no botão Criar.
    3. Especifique um nome para o volume de armazenamento.
    4. Em Detalhes do pool de armazenamento, clique em Selecionar pool de armazenamento para escolher o pool de armazenamento criado na etapa anterior.
    5. Na seção Detalhes do volume, forneça as seguintes informações:
      1. Compartilhar nome
      2. Capacidade do volume
    6. Na seção Configuração de grande capacidade, selecione o protocolo SMB.
    7. Na seção Configuração dos protocolos selecionados, selecione Ativar suporte ao compartilhamento de CA para o SQL Server, FSLogix.
    8. Clique no botão Criar para concluir o processo de criação de um novo volume de armazenamento.

Crie regras de firewall

Para que os clientes se conectem ao SQL Server, permita a comunicação entre os nós do cluster de failover do Windows Server (WSFC, na sigla em inglês) e permita que o balanceador de carga realize verificações de integridade. É preciso criar várias regras de firewall. Para simplificar a criação dessas regras de firewall, use tags de rede:

  • Os WSFC que você usa são anotados com a tag wsfc-node.
  • Todos os servidores (incluindo a testemunha) são anotados com a tag wsfc.

Para criar regras de firewall que usam essas tags de rede, siga estas etapas:

  1. Volte para a sessão atual do Cloud Shell.
  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 integridade dos intervalos de IP das sondas do Google Cloud:

    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
    

Criar instâncias de VM

Agora você implantará três instâncias de VM para o cluster de failover.

Node-1 hospedará a réplica primária do banco de dados do SQL Server, e node-2 hospedará a réplica secundária. As duas instâncias de VM precisam:

  • estar localizadas na mesma região para que possam ser acessadas por um balanceador de carga de rede de passagem interna;
  • ter o WSFC e o SQL Server 2022 instalados usando a imagem premium do SQL Server.

  • ativar o suporte WSFC do Compute Engine;

Para dar um voto de desempate e conquistar um quórum para o cenário de failover, você implanta uma terceira VM node-3 que serve como uma testemunha de compartilhamento de arquivos.

  1. Volte para a sessão atual do Cloud Shell.
  2. Crie um script para os nós WSFC. O script instala o recurso necessário do Windows 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 servem como nós WSFC, anexe mais um disco de dados 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 mesclar as três instâncias de VM ao Active Directory, faça o seguinte para cada uma das três instâncias de VM:

    1. Monitore o processo de inicialização da VM visualizando a saída da porta serial:

      gcloud compute instances tail-serial-port-output NAME
      

      Substitua NAME pelo nome da instância de VM.

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

    2. Crie um nome de usuário e uma senha para a instância de VM.

    3. Conecte-se à VM usando a Área de trabalho remota e faça login usando o nome de usuário e a senha criados na etapa anterior.

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

    5. Confirme a elevação do prompt clicando em Sim.

    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 a reinicialização da instância de VM.

Atribuir permissões de armazenamento

Para atribuir permissões ao armazenamento do volume em nuvem, siga estas etapas:

  1. No console do Google Cloud, selecione Cloud Volumes e escolha o volume que foi criado.

    Volume do Cloud

  2. Conecte-se a node-1 usando a Área de trabalho remota. Faça login com a conta de usuário do domínio.

  3. Abra o Windows Explorer e clique com o botão direito do mouse em Este PC.

  4. Selecione Mapear unidade de rede.

  5. Cole o caminho SMB copiado na pasta.

    Volume do Cloud

  6. No login, desative a opção Reconectar.

  7. Clique em Finish.

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

    Volume do Cloud

  9. Na guia 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 permissões de controle total.

    Volume do Cloud

  11. Confirme a elevação do prompt clicando em Sim.

Reservar endereços IP do cluster

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

  1. Reserve um IP estático para o balanceador de carga interno e capture o endereço em uma nova variável de ambiente chamada 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"
    

    Anote o endereço IP, você vai precisar dele mais tarde.

  2. Reserve outro endereço IP estático usado 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"
    

    Anote o endereço IP, você vai precisar dele mais tarde.

Agora o projeto e a VPC estão prontos para a implantação do WSFC e do SQL Server.

Criar um compartilhamento de arquivos da testemunha

Para preparar o witness que serve como uma testemunha de compartilhamento de arquivos, crie um compartilhamento de arquivos e conceda a você e aos dois nós WSFC acesso ao compartilhamento de arquivos:

  1. Conecte-se a witness usando a Área de trabalho remota. Faça login com a conta de usuário do domínio.
  2. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e clique em Windows PowerShell (administrador).
  3. Confirme a elevação do prompt clicando em Sim.
  4. Crie a pasta da testemunha e compartilhe-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$
    

Como implantar o cluster de failover

Use as instâncias de VM para implantar um WSFC e SQL Server.

Implantar o WSFC

Agora você está pronto para criar o cluster de failove.

  1. Conecte-se a node-1 usando a Área de trabalho remota. Faça login com a conta de usuário do domínio.
  2. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e clique em Windows PowerShell (administrador).
  3. Confirme a elevação do prompt clicando em Sim.
  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 você criou anteriormente.

  5. Retorne à sessão do PowerShell em witness e conceda ao objeto de computador virtual do cluster a permissão de acesso ao compartilhamento de arquivos:

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

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

    Test-Cluster
    

    Talvez sejam exibidos 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 é possível executar o snap-in de MMC do failover para analisar a integridade do cluster executando cluadmin.msc.

  8. Se você estiver usando o AD gerenciado, adicione a conta de computador usada pelo WSFC ao grupo de Contas mescladas de domínio do Cloud Service para que ela possa juntar instâncias de VM ao domínio:

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

Remover a instalação padrão do SQL Server

Agora, remova a instalação padrão do SQL Server dos dois nós e a substitua por uma nova configuração de FCI.

Para cada um dos dois nós WSFC, node-1 e node-2, execute as seguintes etapas:

  1. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e clique em Windows PowerShell (administrador).
  2. Confirme a elevação do prompt clicando em Sim.
  3. Remova a instância do SQL Server padrão:

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

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

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

    Restart-Computer
    
  7. Aguarde a reinicialização da instância de VM.

Instalar a FCI do SQL Server

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

  1. Reconecte-se ao node-1 usando a área de trabalho remota e faça login usando o usuário do domínio.
  2. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e selecione Executar
  3. Digite cluadmin.msc e selecione OK.
  4. No painel da janela à esquerda, navegue até Failover Cluster Manager > windows-fci e faça o seguinte:

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

    2. Se o servidor do host atual estiver definido como node-2, clique com o botão direito do mouse em windows-fci no painel da janela à esquerda e selecione More actions > Move core cluster resources > Select node… > node-1 e clique em OK.

Agora, crie uma nova instalação do cluster de failover do SQL Server em node-1:

  1. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e clique em Windows PowerShell (administrador).
  2. Confirme a elevação do prompt clicando em Sim.

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

    & c:\sql_server_install\setup.exe
    
  4. No menu à esquerda, selecione Installation.

  5. Selecione Nova instalação do cluster de failover do SQL Server.

  6. Na página Edição, digite a chave do produto, selecione o tipo de licença de software e clique em Próxima.

  7. Na página Termos de licença, analise os termos e, se você aceitar, selecione Próxima.

  8. Na página Microsoft Update, selecione Próxima para iniciar a instalação.

  9. Na página Instalar regras de cluster de failover, você verá um aviso Avisos de verificação de cluster MSCS e Firewall do Windows. Ignore esses avisos e selecione Próxima.

  10. Na página Seleção de recurso, selecione Serviços do mecanismo de banco de dados e depois Próxima.

  11. Na página Configuração da instância, insira sql como o nome da rede e selecione Próxima.

  12. Na página Grupo de recursos de cluster, ignore os avisos de qualificação e clique em Próxima.

  13. Na página Seleção de disco do cluster, clique em Próxima.

  14. Na página Configuração de rede de cluster, defina as configurações a seguir e selecione Próxima:

    • DHCP: claro
    • Endereço IP: insira o endereço IP do balanceador de carga interno
  15. Na página Configuração do servidor, defina as configurações a seguir para o SQL Server Agent e o SQL Server Database Engine:

    • Nome da conta: DOMAIN\sql_server em que DOMAIN é o nome do NetBIOS do seu domínio do Active Directory
    • Senha: digite a senha do usuário sql_server
  16. Selecione a guia Agrupamento e selecione o agrupamento que você quer usar. Depois clique em Next.

  17. Na página Configuração do mecanismo de banco de dados, selecione Adicionar usuário atual para designar o usuário atual como administrador do SQL Server. Na guia Diretórios de dados, digite o caminho do SMB no campo Diretório raiz de dados e selecione Próxima. Uma janela de mensagem vai aparecer para você verificar se a conta de serviço do SQL Server tem permissão de compartilhamento de controle total. Selecione Sim para prosseguir.

    Volume do Cloud

  18. Na página Pronto para instalar, revise as configurações e selecione Instalar.

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

Agora adicione node-2 ao cluster de failover do SQL Server:

  1. Conecte-se ao node-2 usando a área de trabalho remota e faça login usando o usuário do domínio.
  2. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e clique em Windows PowerShell (administrador).
  3. Confirme a elevação do prompt clicando em Sim.
  4. Inicie a configuração do SQL Server:

    & c:\sql_server_install\setup.exe
    
  5. No menu à esquerda, selecione Installation.

  6. Selecione Adicionar nó a um cluster de failover do SQL Server.

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

  8. Na página Contas de serviço, digite a senha que você criou anteriormente para o SQL Server Agent e o SQL Server Database Engine. Depois, selecione Próxima.

  9. Na página Pronto para instalar, revise as configurações e selecione Instalar.

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

Configurar verificações de integridade

A última etapa é configurar o cluster para expor um endpoint de verificação de integridade que possa ser usado por um balanceador de carga interno:

  1. Volte para a 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 wsfc que você reservou anteriormente.

  3. Configure o cluster de failover para responder ao serviço de verificação de integridade:

    $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 do cluster:

    $SqlIpAddress | Stop-ClusterResource
    $SqlIpAddress | Start-ClusterResource
    
  5. Reinicie o grupo do cluster:

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

criar um balanceador de carga interno

Para fornecer um único endpoint para clientes do SQL Server, implante um balanceador de carga interno. O balanceador de carga usa uma verificação de integridade que garante que o tráfego seja direcionado para o nó ativo do WSFC.

  1. Volte para a sessão atual do Cloud Shell.
  2. Crie um grupo de instâncias não gerenciadas 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 integridade 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 verificação de integridade faz sondagem na porta 59997, que foi configurada anteriormente como ProbePort para o endereço IP do cluster do 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. Criar 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
    

Como testar o cluster de failover

Você concluiu a instalação do cluster de failover, mas ainda precisa testar se o cluster funciona corretamente.

Preparar um cliente

Crie uma nova instância de VM que possa ser usada para se conectar ao cluster de failover:

  1. Volte para a sessão atual do Cloud Shell.
  2. Crie 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. Monitore o processo de inicialização da VM visualizando a saída da porta serial:

    gcloud compute instances tail-serial-port-output sqlclient
    

    Aguarde alguns minutos até ver a saída da configuração da instância concluída e, em seguida, pressione Ctrl+C. Nesse momento, a instância de VM está pronta para ser usada.

  4. Crie um nome de usuário e uma senha para a instância de VM.

  5. Conecte-se à VM usando a Área de trabalho remota e faça login usando o nome de usuário e a senha criados na etapa anterior.

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

  7. Confirme a elevação do prompt clicando em Sim.

  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 a reinicialização da instância de VM.

Executar o teste

Use a VM sqlclient para testar se é possível se conectar ao cluster de failover e verificar se o failover funciona corretamente:

  1. Conecte-se ao sqlclient usando a área de trabalho remota e faça login usando o usuário do domínio.
  2. Clique com o botão direito do mouse no botão Iniciar (ou pressione Win+X) e clique em Windows PowerShell.
  3. Conecte-se ao cluster do SQL Server usando o 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"
    

    A saída será como esta:

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

    node-1 é o proprietário atual do recurso de cluster de failover do SQL Server.

  4. Volte ao Cloud Shell e desative a VM node-1 para testar o cenário de failover:

    gcloud compute instances stop node-1
    
  5. Repita 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"
    

    A resposta será semelhante a esta:

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

    Observe que, independentemente da perda do node-1, a consulta é bem-sucedida e mostra que o node-2 já é o proprietário atual do cluster de failover.

Limpar

Depois de concluir o tutorial, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.