Como configurar instâncias do cluster de failover do SQL Server

Se você precisar de alta disponibilidade e redundância para o Microsoft SQL Server no Compute Engine, é possível configurar instâncias de cluster de failover (FCI, na sigla em inglês) sempre ativadas com o Storage Spaces Direct (S2D).

A FCI sempre ativada oferece uma única instância do Windows SQL Server instalada em nós do Windows Server Failover Cluster (WSFC). Somente um nó no WSFC hospeda ativamente a instância do SQL. No caso de um failover, o serviço WSFC transfere a propriedade dos recursos da instância para um nó de failover designado.

O S2D fornece uma SAN virtual baseada em software que pode usar discos de dados da VM do Compute Engine para armazenar o banco de dados SQL.

Este tutorial apresenta uma configuração de exemplo. Ao finalizar este tutorial, você terá criado uma FCI do SQL Server sempre ativada com S2D no Compute Engine.

Objetivos

  • Configurar uma rede VPC com um controlador de domínio do Windows.
  • Criar duas instâncias de VM do Windows SQL Server para funcionar como nós de cluster.
  • Configurar o cluster de failover, inclusive o armazenamento de cluster.
  • Configurar um balanceador de carga interno a fim de direcionar o tráfego para o nó ativo.
  • Testar a operação de failover para verificar se o cluster está funcionando.

Custos

Neste tutorial, usamos imagens do Compute Engine que incluem licenças do Windows Server. Isso significa que o custo para executar este tutorial pode ser significativo se você deixar as VMs em execução. É uma boa ideia interromper as VMs que não são usadas.

Consulte a Calculadora de preços para ter uma estimativa dos custos para concluir este tutorial.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. Selecione ou crie um projeto do GCP.

    Acessar a página Gerenciar recursos

  3. Verifique se o faturamento foi ativado para o projeto.

    Saiba como ativar o faturamento

  4. Ativar Compute Engine API.

    Ativar a API

  5. Inicie uma instância do Cloud Shell em que você possa executar todos os comandos gcloud neste tutorial.
    ABRIR O CLOUD SHELL
  6. Como opção, revise e solicite um aumento da cota do disco permanente SSD. Você precisa de 500 GB para este tutorial.

Visão geral

Esta configuração de exemplo inclui os componentes e endereços IP a seguir:

  • rede VPC personalizada: 10.0.0.0/24
  • controlador de domínio do Active Directory: 10.0.0.3
  • dois nós WSFC com armazenamento S2D anexado
    • node-1: 10.0.0.4
    • node-2: 10.0.0.5
  • cluster de failover do Windows Server (para gerenciamento do cluster): 10.0.0.201
  • balanceador de carga interno e listener FCI SQL (para conexões SQL): 10.0.0.200

O balanceador de carga detecta solicitações. Com base em verificações de integridade, ele sabe qual nó do SQL Server está ativo e direciona o tráfego para lá. Se o nó ativo falhar, o nó de failover FCI será ativado. O verificador de integridade recebe o sinal do nó íntegro e o balanceador de carga redireciona o tráfego. O banco de dados, armazenado em volumes S2D, permanece disponível.

Diagrama de arquitetura que mostra duas VMs do Compute Engine em um cluster de failover

Como configurar a rede VPC

Embora você possa usar uma rede atual neste tutorial, é uma prática recomendada isolar sistemas em redes e sub-redes diferentes com regras de firewall que limitam o tráfego.

  1. Crie uma rede VPC de modo personalizado, que oferece controle total sobre as sub-redes e os intervalos de IP.

    gcloud compute networks create wsfcnet --subnet-mode custom
    
  2. Adicione uma sub-rede, wsfc-subnet1, que conterá todas as VMs neste tutorial.

    gcloud compute networks subnets create wsfc-subnet1 \
        --network wsfcnet \
        --region us-central1 \
        --range 10.0.0.0/24
    
  3. Crie uma regra de firewall para permitir o tráfego interno entre as VMs nessa rede.

    gcloud compute firewall-rules create allow-internal-ports \
        --network wsfcnet \
        --allow tcp:1-65535,udp:1-65535,icmp \
        --source-ranges 10.0.0.0/24
    
  4. Crie uma regra de firewall para permitir tráfego de entrada para RDP na porta 3389. Você está abrindo tcp:3389 para todos os endereços IP (0.0.0.0/0). Em um ambiente de produção, você limitaria o acesso a IPs aprovados.

    gcloud compute firewall-rules create allow-rdp \
        --network wsfcnet \
        --allow tcp:3389 \
        --source-ranges 0.0.0.0/0
    

Como criar e configurar um controlador de domínio do Windows

Um domínio do Active Directory é usado em serviços de nome de domínio, no cluster de failover do Windows e em recursos do Storage Spaces Direct necessários para esse tutorial. Ter o controlador de domínio do AD na mesma VPC não é um requisito, mas uma simplificação para a finalidade deste tutorial.

Neste tutorial, o domínio é gontoso.com. O nome de VM do controlador de domínio é dc-windows (e, por padrão, o nome de computador do Windows corresponde ao nome da VM, dc-windows). A VM é criada na sub-rede em 10.0.0.3.

  1. Crie uma VM a ser usada como o controlador de domínio. Embora seja possível especificar qualquer tipo de máquina e servidor do Windows necessários, neste exemplo, use os parâmetros a seguir.

    gcloud compute instances create "dc-windows" \
        --zone "us-central1-a" \
        --machine-type "n1-standard-2" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.3" \
        --can-ip-forward \
        --image-family "windows-2016" \
        --image-project "windows-cloud" \
        --boot-disk-size "200" \
        --boot-disk-type "pd-standard" \
        --boot-disk-device-name "dc-windows"
    
  2. Gere uma senha para se conectar à VM do controlador de domínio usando uma conta local. Anote o nome de usuário e a senha para uso futuro.

  3. Usando o RDP, conecte-se à VM do controlador de domínio com o nome de usuário e a senha da conta local.

  4. Na VM, execute o PowerShell como administrador para abrir um prompt elevado do PowerShell.

  5. Configure um usuário administrador.

    1. Execute o comando a seguir e digite uma senha, que será usada com a conta de administrador.

      PS C:\> $Password = Read-Host -AsSecureString
      

      Anote a senha que você digitou. Você usará essa senha na conta de administrador.

    2. Defina a senha da conta de administrador.

      PS C:\> Set-LocalUser -Name Administrator -Password $Password
      
    3. Ative a conta de administrador.

      PS C:\> Enable-LocalUser -Name Administrator
      
  6. Configure uma conta de serviço do SQL Server, que será usada como a conta do SQL Agent e do SQL Admin.

    1. Digite uma senha a ser usada com a conta de serviço do SQL Server.

      PS C:\> $Password = Read-Host -AsSecureString
      

      Anote a senha que você digitou. Você usará essa senha na conta de serviço do SQL Server.

    2. Crie a conta de serviço do SQL Server e defina a senha.

      PS C:\> New-LocalUser -Name "service_account" -Description "SQL Agent and SQL Admin account."  -Password $Password
      
  7. Faça logoff e reconecte-se à VM do controlador de domínio usando o RDP com a conta e a senha de administrador.

  8. Em um PowerShell elevado, defina as variáveis a seguir, que serão usadas para configurar a floresta do Active Directory.

    PS C:\> $DomainName = "gontoso.com";
    PS C:\> $DomainMode = "Win2012R2";
    PS C:\> $ForestMode = "Win2012R2";
    PS C:\> $DatabasePath = "C:\Windows\NTDS";
    PS C:\> $LogPath = "C:\Windows\NTDS";
    PS C:\> $SysvolPath = "C:\Windows\SYSVOL";
    
  9. Instale serviços e ferramentas do Active Directory.

    PS C:\> Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
    
    Success Restart Needed Exit Code      Feature Result
    ------- -------------- ---------      --------------
    True    No             Success        {Active Directory Domain Services, Group P...
    
    
  10. Instale e configure a floresta do Active Directory. Esse comando solicitará credenciais. Use o nome de usuário e a senha Administrator criados em uma etapa anterior.

    PS C:\> Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath $DatabasePath -LogPath $LogPath -SysvolPath $SysvolPath -DomainName $DomainName -DomainMode $DomainMode -ForestMode $ForestMode -InstallDNS:$true -NoRebootOnCompletion:$false -SafeModeAdministratorPassword ((Get-Credential).Password) -Force:$true;
    
    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    Credential
    ...
    
    

    A máquina será reinicializada.

  11. Depois que a VM for reiniciada, reconecte-a usando o RDP. Use as credenciais de conta local, que correspondem às credenciais originais.

Como criar as VMs e os discos de dados do cluster

Crie duas VMs do SQL Server com discos de dados adicionais. Uma VM é disponibilizada como o nó FCI ativo e a outra como o nó de failover. Os discos adicionais são disponibilizados como volumes S2D.

Cada VM do SQL Server precisa atender aos requisitos a seguir.

  • Ela é criada na sub-rede definida anteriormente, wsfc-subnet1.
  • Ela tem um IP privado no intervalo de sub-rede, 10.0.0.0/24.
  • O recurso de clustering de failover do Windows Server está instalado.
  • O agente WSFC do Compute Engine, que pode monitorar o nó ativo no cluster de failover, está ativado.
  1. No Cloud Shell, crie duas VMs do SQL Server com discos de dados adicionais. Os discos serão usados como capacidade de S2D e volumes de cache.

    gcloud compute instances create "node-1" \
        --zone "us-central1-f" \
        --machine-type "n1-highmem-4" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.4" \
        --can-ip-forward \
        --image-family "sql-ent-2016-win-2016" \
        --image-project "windows-sql-cloud" \
        --boot-disk-size "50" \
        --boot-disk-type "pd-ssd" \
        --boot-disk-device-name "node-1" \
        --create-disk=name=node-1-datadisk-1,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-1-datadisk-2,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-1-datadisk-3,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-1-datadisk-4,size=50,type=pd-ssd,auto-delete=no \
        --metadata enable-wsfc=true,sysprep-specialize-script-ps1="Install-WindowsFeature Failover-Clustering -IncludeManagementTools;"
    
    gcloud compute instances create "node-2" \
        --zone "us-central1-a" \
        --machine-type "n1-highmem-4" \
        --subnet "wsfc-subnet1" \
        --private-network-ip "10.0.0.5" \
        --can-ip-forward \
        --image-family "sql-ent-2016-win-2016" \
        --image-project "windows-sql-cloud" \
        --boot-disk-size "50" \
        --boot-disk-type "pd-ssd" \
        --boot-disk-device-name "node-2" \
        --create-disk=name=node-2-datadisk-1,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-2,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-3,size=50,type=pd-ssd,auto-delete=no \
        --create-disk=name=node-2-datadisk-4,size=50,type=pd-ssd,auto-delete=no \
        --metadata enable-wsfc=true,sysprep-specialize-script-ps1="Install-WindowsFeature Failover-Clustering -IncludeManagementTools;"
      
  2. Como alternativa, conecte-se a cada nó usando o RDP e, em um PowerShell elevado, verifique se o cluster de failover está ativado.

    PS C:> Get-WindowsFeature Failover-Clustering
    Display Name                                            Name                       Install State


    [X] Failover Clustering Failover-Clustering Installed

Como configurar a rede das VMs do cluster

  1. Configure o primeiro nó.

    1. Gere uma senha para node-1. Anote o nome de usuário e a senha para uso futuro.

    2. Conecte-se a node-1 usando o RDP.

    3. Abra um PowerShell elevado.

    4. Adicione uma regra de firewall para abrir uma porta do agente WSFC do Compute Engine. Por padrão, o agente WSFC do Compute Engine detecta em tcp:59998. Altere-a para uma porta diferente, sendo que ela precisa corresponder à porta do verificador de integridade que será definida depois. O processo de verificação de integridade executa um ping periodicamente no agente em cada nó de cluster para determinar qual é a disponibilidade.

      PS C:\> netsh advfirewall firewall add rule name="Open Compute Engine WSFC agent port for Health Check" dir=in action=allow protocol=TCP localport=59998
      
    5. Adicione uma regra de firewall a fim de abrir uma porta para a instância do SQL Server, normalmente executada em tcp:1433.

      PS C:\> netsh advfirewall firewall add rule name="Open SQL Server port" dir=in action=allow protocol=TCP localport=1433
      
    6. Defina o DNS como o controlador de domínio.

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    7. Atualize o nó para usar um endereço IP estático e defina a máscara de rede.

      PS C:\> netsh interface ip set address name=Ethernet static 10.0.0.4 255.255.0.0 10.0.0.1 1
      

      Você será desconectado da VM. Usando RDP, reconecte-se com o nome de usuário e a senha locais.

    8. Adicione o nó ao domínio do Active Directory que você criou anteriormente.

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      As credenciais serão solicitadas. Use o nome de usuário e a senha de administrador que você definiu quando configurou a VM do controlador de domínio em uma etapa anterior.

      A máquina será reinicializada.

  2. Configure o segundo nó.

    1. Gere uma senha para node-2. Anote o nome de usuário e a senha para uso futuro.

    2. Conecte-se a node-2 usando o RDP.

    3. Abra um PowerShell elevado.

    4. Adicione uma regra de firewall para abrir uma porta do agente WSFC do Compute Engine. A porta precisa corresponder à porta do verificador de integridade que será definido depois.

      PS C:\> netsh advfirewall firewall add rule name="Open Compute Engine WSFC agent port for Health Check" dir=in action=allow protocol=TCP localport=59998
      
    5. Adicione uma regra de firewall a fim de abrir uma porta para a instância do SQL Server, normalmente executada em tcp:1433.

      PS C:\> netsh advfirewall firewall add rule name="Open SQL Server port" dir=in action=allow protocol=TCP localport=1433
      
    6. Defina o DNS como o controlador de domínio.

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    7. Atualize o nó para usar um endereço IP estático e defina a máscara de rede.

      PS C:\> netsh interface ip set address name=Ethernet static 10.0.0.5 255.255.0.0 10.0.0.1 1
      

      Você será desconectado da VM. Usando RDP, reconecte-se com o nome de usuário e a senha locais.

    8. Adicione o nó ao domínio do Active Directory que você criou anteriormente.

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      As credenciais serão solicitadas. Use o nome de usuário e a senha de administrador que você definiu quando configurou a VM do controlador de domínio em uma etapa anterior.

      A máquina será reinicializada.

Como criar uma testemunha de compartilhamento de arquivos

Para dar um voto de desempate e conquistar um quórum para o cenário de failover, crie um compartilhamento de arquivos que funcionará como uma testemunha. Para fins deste tutorial, você criará a testemunha de compartilhamento de arquivos na VM do controlador de domínio. Em um ambiente de produção, você a criaria em outro lugar.

  1. Usando o RDP, conecte-se à VM do controlador de domínio, dc-windows, com a conta de administrador.

  2. Abra um PowerShell elevado.

  3. Crie a pasta de testemunha.

    PS C:\> New-Item "C:\QWitness" –type directory
    
  4. Compartilhe a pasta.

    PS C:\> New-SmbShare -Name "QWitness" -Path "C:\QWitness" -Description "SQL File Share Witness" -FullAccess "gontoso.com\Administrator", "gontoso.com\node-1$", "gontoso.com\node-2$"
    
  5. Como alternativa, use o RDP para se conectar a um dos nós como gontoso.com\Administrator e verifique se é possível acessar o diretório compartilhado.

    PS C:\> dir \\\\dc-windows\QWitness
    

Como criar um balanceador de carga interno

Um balanceador de carga interno fornece um IP único para o SQL Server. O balanceador de carga detecta solicitações e roteia tráfego de rede para o nó de cluster ativo. Ele sabe qual é o nó ativo porque um verificador de integridade está em execução em cada nó. Somente o nó ativo responde como íntegro. Se o nó ativo ficar inativo, o nó de failover FCI SQL será ativado. O verificador de integridade recebe o sinal, e o tráfego é redirecionado para ele.

  1. Crie dois grupos de instâncias e adicione um nó do SQL Server a cada grupo. Esses grupos de instâncias funcionam como back-ends para os quais o balanceador de carga pode direcionar o tráfego.

    gcloud compute instance-groups unmanaged create wsfc-group-f --zone us-central1-f
    gcloud compute instance-groups unmanaged add-instances wsfc-group-f --instances node-1 --zone us-central1-f
    
    gcloud compute instance-groups unmanaged create wsfc-group-a --zone us-central1-a
    gcloud compute instance-groups unmanaged add-instances wsfc-group-a --instances node-2 --zone us-central1-a
    
  2. 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 sql-healthcheck \
        --check-interval="2s" \
        --healthy-threshold=1 \
        --unhealthy-threshold=2 \
        --port=59998 \
        --request=10.0.0.200 \
        --timeout="1s" \
        --response=1
    
  3. Adicione uma regra de firewall para permitir a verificação de integridade.

    gcloud compute firewall-rules create allow-health-check \
        --network wsfcnet \
        --source-ranges 130.211.0.0/22,35.191.0.0/16 \
        --allow tcp
    
  4. Crie um serviço de back-end e adicione os dois grupos de instâncias de back-end.

    gcloud compute backend-services create wsfcbackend \
        --load-balancing-scheme internal \
        --region us-central1 \
        --health-checks sql-healthcheck \
        --protocol tcp
    
    gcloud compute backend-services add-backend wsfcbackend \
        --instance-group wsfc-group-a \
        --instance-group-zone us-central1-a \
        --region us-central1
    
    gcloud compute backend-services add-backend wsfcbackend \
        --instance-group wsfc-group-f \
        --instance-group-zone us-central1-f \
        --region us-central1
    
  5. Crie um balanceador de carga interno a fim de encaminhar solicitações para o nó ativo na FCI SQL. A FCI será criada posteriormente e configurada para detectar 10.0.0.200.

    gcloud compute forwarding-rules create wsfc-forwarding-rule \
        --load-balancing-scheme internal \
        --ports 1433 \
        --network wsfcnet \
        --subnet wsfc-subnet1 \
        --region us-central1 \
        --backend-service wsfcbackend \
        --address 10.0.0.200
    

Como criar um cluster de failover do Windows

  1. Usando RDP, reconecte-se a node-1 como gontoso.com\Administrator. Para se reconectar, talvez seja necessário excluir os certificados anteriores.

  2. Abra um PowerShell elevado.

  3. Crie o cluster.

    PS C:\> New-Cluster -Name windows-fci -Node node-1, node-2 -StaticAddress 10.0.0.201 -NoStorage
    
    PS C:\> Set-ClusterQuorum -FileShareWitness \\\\dc-windows\QWitness
    
  4. Teste o cluster. Você verá alguns avisos que podem ser ignorados.

    PS C:\> Test-Cluster
    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).
    Test report file path: C:\Users\Administrator\AppData\Local\Temp\Validation Report 2018.05.01 At 19.25.01.htm
    
    Mode                LastWriteTime         Length Name
    ----                -------------         ------ ----
    -a----         5/1/2018   7:26 PM         747166 Validation Report 2018.05.01 At 19.25.01.htm
    
    

    Você também pode iniciar a GUI de administração do cluster para revisar a integridade do cluster executando cluadmin.msc.

Como ativar o Storage Spaces Direct

  1. Usando o RDP, conecte-se a node-1 ou node-2 e abra um PowerShell elevado.

  2. Ative o Storage Spaces Direct.

    PS C:\> Enable-ClusterS2D
    
    Confirm
    Are you sure you want to perform this action?
    Performing operation 'Enable Cluster Storage Spaces Direct' on Target 'windows-fci'.
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y
    WARNING: 2018/05/01-19:36:41.315 Node node-1: No disks found to be used for cache
    WARNING: 2018/05/01-19:36:41.330 Node node-2: No disks found to be used for cache
    WARNING: 2018/05/01-19:36:41.362 C:\Windows\Cluster\Reports\Enable-ClusterS2D on 2018.05.01-19.36.41.362.htm
    
    

    Aceite o padrão quando solicitado a confirmar. Você verá alguns avisos que poderá ignorar.

    • Como alternativa, se você quiser melhorar o desempenho do disco, é possível adicionar SSDs locais às VMs do cluster, além dos discos permanentes SSD padrão. Os SSDs locais podem funcionar como camada de cache do S2D. Escolha como número de drives de capacidade (discos permanentes SSD, neste caso) um múltiplo do número de SSDs locais. Execute o seguinte comando para ativar o S2D com armazenamento em cache:

      PS C:\> Enable-ClusterS2D -CacheDeviceModel "EphemeralDisk"
      
    • Também é possível ativar o cache na memória de volume de cluster compartilhado (CSV, na sigla em inglês) para uma melhor capacidade de leitura:

      PS C:\> (Get-Cluster).BlockCacheSize = 2048
      
  3. Como o S2D requer 2 GB por volume para gerenciamento e há quatro volumes de 50 GB por nó, defina o pool de armazenamento e o tamanho como 192 GB.

    PS C:\> New-Volume -StoragePoolFriendlyName S2D* -FriendlyName VDisk01 -FileSystem CSVFS_REFS -Size 192GB
    
  4. Verifique se o volume de armazenamento existe em modo de leitura/gravação.

    PS C:\> dir C:\ClusterStorage\Volume1\ | Get-ACL
    
    Directory: C:\ClusterStorage\Volume1
    
    Path                Owner                  Access
    ----                -----                  ------
    MSSQL13.MSSQLSERVER BUILTIN\Administrators BUILTIN\Administrators Allow  FullControl...
    
    

Como configurar alta disponibilidade para o SQL Server usando FCI

  1. Remova a instância do SQL Server padrão do primeiro nó. Você vai substituí-la depois com uma nova configuração FCI.

    1. Usando RDP, conecte-se a node-1 como gontoso.com\Administrator.

    2. Abra um PowerShell elevado.

    3. Remova a instância do SQL Server padrão.

      PS C:\> C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
      
    4. Reinicialize a VM.

      PS C:\> shutdown /r
      
  2. Remova a instância do SQL Server padrão do segundo nó. Você vai substituí-la depois com uma nova configuração FCI.

    1. Usando RDP, faça login em node-2 como gontoso.com\Administrator.

    2. Abra um PowerShell elevado.

    3. Remova a instância do SQL Server padrão.

      PS C:\> C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
      
    4. Reinicialize a VM.

      PS C:\> shutdown /r
      
  3. Reinstale o SQL Server com FCI no primeiro nó.

    1. Usando RDP, faça login em node-1 como gontoso\Administrator.

    2. Abra um editor de texto, como o Bloco de Notas.

    3. Copie o conteúdo do arquivo de configuração fci_install_master_node.ini para o editor de texto em node-1. As quebras de linha podem não ser preservadas, mas ainda funcionam.

    4. Atualize o arquivo de configuração com a senha gontoso.com\service_account. A senha precisa ser atualizada em dois locais: AGTSVCPASSWORD e SQLSVCPASSWORD. Procure changeme e a substitua pela senha definida. Salve o arquivo como texto simples com o nome de arquivo, C:\fci_install_master_node.ini.

    5. Abra um PowerShell elevado e instale o SQL Server usando o arquivo de configuração.

      PS C:\> C:\sql_server_install\Setup.exe /CONFIGURATIONFILE=C:\fci_install_master_node.ini
      
  4. Reinstale o SQL Server com FCI no segundo nó.

    1. Usando RDP, faça login em node-2 como gontoso\Administrator.

    2. Abra um editor de texto, como o Bloco de Notas.

    3. Copie o conteúdo do arquivo de configuração fci_add_node.ini para o editor de texto em node-1.

    4. Atualize o arquivo de configuração com a senha gontoso.com\service_account. A senha precisa ser atualizada em dois locais: AGTSVCPASSWORD e SQLSVCPASSWORD. Procure changeme e a substitua pela senha definida. Salve o arquivo como texto simples com o nome de arquivo, C:\fci_add_node.ini.

    5. Abra um PowerShell elevado e instale o SQL Server.

      PS C:\> C:\sql_server_install\Setup.exe /CONFIGURATIONFILE=C:\fci_add_node.ini
      

Como testar o cenário de failover

Como preparar um cliente

  1. No Cloud Shell, crie uma nova VM a ser disponibilizada como um cliente SQL.

    gcloud compute instances create "sqlclient-1" \
    --zone "us-central1-a" \
    --machine-type "n1-standard-2" \
    --subnet "wsfc-subnet1" \
    --private-network-ip "10.0.0.10" \
    --can-ip-forward \
    --image-family "sql-ent-2016-win-2016" \
    --image-project "windows-sql-cloud" \
    --boot-disk-size "200" \
    --boot-disk-type "pd-standard" \
    --boot-disk-device-name "sqlclient-1"
    
  2. Usando o RDP, conecte-se a sqlclient-1.

  3. Abra um PowerShell elevado.

  4. Configure o cliente.

    1. Defina o DNS como o controlador de domínio.

      PS C:\> netsh interface ip set dns Ethernet static 10.0.0.3
      
    2. Adicione o nó ao domínio do Active Directory que você criou anteriormente.

      PS C:\> Add-Computer -DomainName gontoso.com -Restart -Force -Credential gontoso.com\Administrator
      

      As credenciais serão solicitadas. Use o nome de usuário e a senha de administrador que você definiu quando configurou a VM do controlador de domínio em uma etapa anterior.

      A máquina será reinicializada.

    3. Usando o RDP, reconecte-se com a conta de administrador.

    4. Adicione o gontoso.com\service_account ao grupo Administradores local.

      PS C:\> Add-LocalGroupMember -Group "Administrators" -Member "gontoso.com\service_account"
      
    5. Faça logoff.

      PS C:\> logoff
      

Como executar o teste

  1. Usando o RDP, reconecte-se a sqlclient-1 com o nome de usuário e a senha gontoso.com\service_account.

  2. Em um PowerShell, execute uma consulta de teste na tabela dm_os_cluster_nodes do sistema.

    PS C:\> & "c:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S 10.0.0.200 -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    
    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.

  3. Usando o Cloud Shell, desative a VM node-1 para testar o cenário de failover.

    gcloud compute instances stop node-1 --zone us-central1-f
    
  4. Na VM sqlclient-1, execute a consulta de teste novamente.

    PS C:\> & "c:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\SQLCMD.EXE" -S 10.0.0.200 -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
    
    NodeName                       status      status_description is_current_owner
    \------------------------------ ----------- ------------------ ----------------
    NODE-1                                   1 down                              0
    NODE-2                                   0 up                                1
    
    (2 rows affected)
    
    

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

Como limpar

Para evitar cobranças dos recursos usados neste tutorial na conta do Google Cloud Platform:

Depois de concluir o tutorial SQL Server FCI, você poderá limpar os recursos criados no Google Cloud Platform. Dessa maneira, você não será cobrado por eles no futuro. Nas seções a seguir, descreveremos como excluir ou desativar esses recursos.

Como excluir o projeto

A maneira mais fácil de evitar o faturamento é excluir o projeto criado para o tutorial.

Para excluir o projeto:

  1. No Console do GCP, acesse a página "Projetos".

    Acessar a página Projetos

  2. Na lista de projetos, selecione um e clique em Excluir projeto.
  3. Na caixa de diálogo, digite o código do projeto e clique em Encerrar para excluí-lo.

Como excluir instâncias

Para excluir uma instância do Compute Engine:

  1. No Console do GCP, acesse a página "Instâncias de VM".

    Acessar a página "Instâncias de VMs"

  2. Clique na caixa de seleção ao lado da da instância que deseja excluir.
  3. Clique no botão Excluir na parte superior da página para excluir a instância.

Como excluir discos permanentes

Para excluir um disco permanente:

  1. No Console do GCP, acesse a página "Discos".

    Acessar a página Discos

  2. Marque a caixa de seleção ao lado do nome do disco que quer excluir.

  3. Clique no botão Excluir na parte superior da página.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine