Skip to main content
NetApp database solutions
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Configurar grupos de disponibilidade Always On do SQL Server com Google Cloud NetApp Volumes

Colaboradores netapp-jsnyder

Configure grupos de disponibilidade Always On do SQL Server em instâncias do Google Compute Engine em uma única sub-rede usando o armazenamento em bloco iSCSI do Google Cloud NetApp Volumes. Saiba como configurar instâncias de computação, configurar volumes NetApp, estabelecer clustering de failover e implantar grupos de disponibilidade para alta disponibilidade e recuperação de desastres.

Pré-requisitos

Antes de prosseguir, conclua as etapas de pré-requisito de configuração na documentação do Google Cloud:

Antes de começar

Certifique-se de ter concluído os seguintes requisitos:

  • Projeto do Google Cloud com permissões de administrador para computação, rede, IAM e armazenamento

  • Rede VPC com sub-rede para setup de região

  • Configuração do Active Directory e DNS disponível em uma região

  • Regras de firewall configuradas para permitir as portas necessárias

  • Familiaridade com SQL Server Always On availability groups e failover clustering

Observação Novos usuários do Google Cloud podem ser elegíveis para "créditos de teste grátis".

Objetivos

A configuração do grupo de disponibilidade Always On do SQL Server inclui as seguintes tarefas de alto nível:

  • Configurar instâncias do Compute Engine e volumes de armazenamento NetApp

  • Configurar o SQL Server em ambos os nós

  • Configurar o clustering de failover do Windows Server

  • Configurar o quorum do cluster com file share witness

  • Configurar os grupos de disponibilidade do SQL Server

  • Configurar Distributed Network Name (DNN) para acesso do listener

Considerações sobre custos

Este tutorial utiliza componentes faturáveis do Google Cloud, incluindo "Instâncias do Compute Engine" e "Google Cloud NetApp Volumes" armazenamento.

Use a "Calculadora de preços" para gerar uma estimativa de custo com base nos seus requisitos de computação e armazenamento. A configuração de exemplo utiliza instâncias de computação N4-SKU e armazenamento de nível de serviço Flex da NetApp para a configuração do grupo de disponibilidade Always On do SQL Server.

Configurar contas de domínio

Configure duas contas no Active Directory: uma conta de instalação (sua conta de administrador) e uma conta de serviço para ambas as VMs do SQL Server.

Por exemplo, use os valores na tabela a seguir para as contas:

Observação Este exemplo usa cvsdemo como nome de domínio. Substitua cvsdemo pelo seu nome de domínio ao longo deste procedimento.
Conta VM Nome de domínio completo Descrição

<your account>

Ambos (sqlnode1 e sqlnode2)

cvsdemo\DomainAdmin

Conta de administrador para fazer login em qualquer uma das máquinas virtuais e configurar o clustering e o grupo de disponibilidade

sqlsvc

Ambos (sqlnode1 e sqlnode2)

cvsdemo\sqlsvc

Conta de serviço para SQL Server e SQL Server Agent em ambas as VMs do SQL Server

Criar VMs do Compute Engine para SQL Server

Crie duas instâncias de máquina virtual do Google Compute Engine com SQL Server 2022 Enterprise pré-instalado no Windows Server 2025 para hospedar as réplicas do grupo de disponibilidade.

Passos
  1. No console do Google Cloud, acesse a página "Criar uma instância".

    Consulte o "Documentação do Google Cloud" para mais informações.

  2. Para Nome, insira sqlnode1.

  3. Na seção Machine configuration:

    1. Selecione General Purpose

    2. Na lista Series, selecione N4

    3. Na lista Tipo de máquina, selecione n4-highmem-8 (8 vCPU, 64 GB memória)

  4. Selecione a região onde você criou sua VPC (por exemplo, region=us-west1, zone=us-west1-a).

  5. Na seção Disco de inicialização, clique em Alterar:

    1. Na guia Imagens públicas, na lista Sistema operacional, selecione SQL Server on Windows Server.

    2. Na lista Versão, selecione SQL Server 2022 Enterprise on Windows Server 2025 Datacenter.

    3. Na lista Tipo de disco de inicialização, selecione Hyperdisk Balanced.

    4. No campo Tamanho (GB), insira 50 GB.

    5. Clique em Select para salvar a configuração do disco de inicialização.

  6. Na seção Networking, edite a interface de rede para selecionar a VPC e a sub-rede corretas. Se você tiver apenas uma VPC network, ela será selecionada por padrão.

    1. Na placa de interface de rede, selecione gVNIC.

    2. Para "Nível de serviço de rede", selecione Premium para cargas de trabalho de missão crítica ou Standard para otimizar custos.

  7. Clique em Create para criar a máquina virtual.

  8. Repita estes passos para criar sqlnode2.

Adicionar servidores ao domínio

Após criar as VMs, associe-as ao domínio do Active Directory e instale os recursos do Windows necessários para clustering de failover e conectividade iSCSI.

Passos
  1. Conecte-se remotamente à máquina virtual com a conta de administrador local.

  2. No Server Manager, selecione Local Server.

  3. Selecione o link WORKGROUP.

  4. Na seção Nome do computador, selecione Alterar.

  5. Selecione a caixa de seleção Domínio e insira seu domínio (por exemplo, cvsdemo.internal) na caixa de texto.

  6. Clique em OK.

  7. Na caixa de diálogo Segurança do Windows, especifique as credenciais da conta de administrador de domínio padrão (por exemplo, cvsdemo\DomainAdmin).

  8. Quando você vir a mensagem "Welcome to the cvsdemo.internal domain", clique em OK.

  9. Clique em Fechar e, em seguida, selecione Reiniciar agora na caixa de diálogo.

  10. Após a reinicialização do servidor, adicione a sqlsvc conta ao grupo Administradores.

Observação Sua instância do SQL será executada usando a conta sqlsvc, que é necessária para clustering e configuração de failover.

Instalar os recursos necessários do Windows

Instale o clustering de failover e o MPIO em ambas as VMs do SQL Server usando Server Manager ou PowerShell.

Opção 1: usando Server Manager
  1. No Server Manager, selecione Manage > Add Roles and Features.

  2. Selecione Role-based or feature-based installation e clique em Next.

  3. Selecione o seu servidor e clique em Next.

  4. Na página Recursos, selecione clustering de failover e Multipath I/O.

  5. Clique em Adicionar funcionalidades quando solicitado a incluir ferramentas de gerenciamento.

  6. Conclua o assistente e reinicie se solicitado.

Opção 2: usando PowerShell

Execute o PowerShell como administrador e execute os seguintes comandos:

# Install Failover Clustering and tools
Install-WindowsFeature Failover-Clustering, RSAT-Clustering-PowerShell, RSAT-Clustering-CmdInterface -IncludeAllSubFeature -IncludeManagementTools

# Install/enable MPIO
Install-WindowsFeature -Name Multipath-IO
Enable-MSDSMAutomaticClaim -BusType "iSCSI"

# Install .NET and other SQL prerequisites (if not already installed)
Install-WindowsFeature NET-Framework-45-Core, NET-Framework-45-Features
Install-WindowsFeature RSAT-AD-PowerShell

Obtenha nomes de iniciador iSCSI

Obtenha o nome qualificado iSCSI (IQN) para cada máquina virtual do SQL Server a ser incluída no grupo de hosts usando a interface gráfica do iniciador iSCSI ou PowerShell.

Opção 1: usando o iniciador iSCSI
  1. Pressione Win+R ou use a barra de pesquisa do Windows para abrir iscsicpl.

  2. Na caixa de diálogo Propriedades do iniciador iSCSI, vá para a guia Configuração.

  3. Copie o valor Initiator Name e inclua-o no grupo de hosts.

    Exemplo: iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal

Opção 2: usando PowerShell

Execute o seguinte comando no PowerShell:

Get-InitiatorPort | Select-Object NodeAddress

Criar volumes de armazenamento em bloco NetApp

Crie volumes de armazenamento em bloco iSCSI usando o Google Cloud NetApp Volumes para fornecer storage compartilhado de alto desempenho para bancos de dados SQL Server. Esse processo inclui a criação de um grupo de hosts, pool de storage e volumes individuais para dados, logs, temp e backup.

Crie o grupo de hosts

Passos
  1. Crie um grupo de hosts contendo os iniciadores iSCSI de ambos os nós SQL.

    gcloud beta netapp host-groups create HOST_GROUP_NAME \
      --location=LOCATION \
      --type=ISCSI_INITIATOR \
      --hosts=HOSTS \
      --os-type=OS_TYPE \
      --description=DESCRIPTION

    Para mais detalhes, consulte a "Criar um grupo de hosts" documentação.

  2. Substitua os seguintes valores:

    • HOST_GROUP_NAME: Nome do grupo de hosts (por exemplo, demosql)

    • LOCATION: região (por exemplo, us-west1)

    • HOSTS: Lista de IQNs separados por vírgulas de sqlnode1 e sqlnode2

      Exemplo: iqn.1991-05.com.microsoft:sqlnode1.cvsdemo.internal,iqn.1991-05.com.microsoft:sqlnode2.cvsdemo.internal

    • OS_TYPE: Tipo de sistema operacional (por exemplo, WINDOWS)

    • DESCRIPTION: Descrição opcional para o grupo de hosts

      Configuração do pool de storage

Criar pool de storage

Passos
  1. Crie um pool de storage com capacidade e desempenho adequados.

    gcloud netapp storage-pools create POOL_NAME \
      --project=PROJECT_ID \
      --location=LOCATION \
      --service-level=Flex \
      --type=Unified \
      --capacity=1024 \
      --total-throughput=64 \
      --total-iops=1024 \
      --network=name=VPC_NAME,psa-range=PSA_RANGE

    Para mais detalhes, consulte a "Criar um pool de armazenamento" documentação.

  2. Substitua os seguintes valores:

    • POOL_NAME: nome do pool (por exemplo, sqltest)

    • PROJECT_ID: nome do seu projeto do Google Cloud

    • LOCATION: mesmo local que suas instâncias de computação (por exemplo, us-west1-b)

    • CAPACITY: Capacidade do pool em GiB (por exemplo, 1024)

    • SERVICE_LEVEL: Nível de serviço (por exemplo, Flex)

    • VPC_NAME: nome da sua rede VPC

    • PSA_RANGE: faixa de acesso a serviços privados (por exemplo, xx.xxx.xxx.0/20)

    • THROUGHPUT: Taxa de transferência opcional em MiBps (por exemplo, 64)

    • IOPS: IOPS opcionais (por exemplo, 1024)

Criar volumes

  1. Crie volumes para dados, logs, temp e backup. Execute o seguinte comando para cada tipo de volume:

    gcloud beta netapp volumes create VOLUME_NAME \
      --project=PROJECT_ID \
      --location=LOCATION \
      --storage-pool=POOL_NAME \
      --capacity=CAPACITY \
      --protocols=ISCSI \
      --block-devices="name=VOLUME_NAME,host-groups=HOST_GROUP_PATH,os-type=WINDOWS" \
      --snapshot-directory=false

    Para mais detalhes, consulte a "Criar um volume" documentação.

  2. Substitua os seguintes valores:

    • VOLUME_NAME: Nome único para cada volume (por exemplo, node1data, node1log, node1temp, node1backup)

    • PROJECT_ID: nome do seu projeto do Google Cloud

    • LOCATION: Mesmo local que pool de storage (por exemplo, us-west1-b)

    • POOL_NAME: nome do pool de storage (por exemplo, sqltest)

    • CAPACITY: Capacidade de volume em GiB (por exemplo, 200)

    • HOST_GROUP_PATH: caminho completo do recurso para o grupo de hosts (por exemplo, projects/PROJECT_ID/locations/us-west1/hostGroups/demosql)

Dica É possível especificar vários grupos de hosts com um sinal de # separando cada grupo de hosts.
Observação Repita esta etapa para cada tipo de volume: data, log, temp e backup.

Montar volumes iSCSI

Monte os volumes iSCSI não compartilhados em cada instância do SQL Server:

Passos
  1. No console do Google Cloud, navegue até NetApp volumes > Volumes.

  2. Selecione o volume criado para a instância SQL (por exemplo, node1data).

  3. Copie os dois endereços IP do destino iSCSI (por exemplo, 10.165.128.216 e 10.165.128.217).

  4. No sqlnode1, execute iscsicpl ou use PowerShell:

  5. Clique na aba Discover e, em seguida, em Discover Portal.

  6. Adicione cada endereço IP obtido; deixe a porta padrão 3260.

    "10.165.128.216","10.165.128.217" | % { New-IscsiTargetPortal -TargetPortalAddress $_ }
    Descobrir portais de destino iSCSI
  7. Na caixa de diálogo Conectar ao destino, marque Habilitar multipath se estiver usando multipathing.

  8. Clique em Avançado e selecione o endereço IP do portal de destino no menu suspenso.

  9. Clique em OK para conectar.

  10. Configure MPIO para dispositivos iSCSI

    1. Abra o MPIO a partir do Painel de Controle ou Server Manager.

    2. Clique na aba Discover Multi-Paths.

    3. Marque a opção Adicionar suporte para dispositivos iSCSI e clique em Adicionar.

    4. Reinicie se solicitado.

    5. Verifique a configuração de multipath no Gerenciador de Dispositivos em Unidades de disco.

  11. Inicializar e formatar volumes

    1. Inicie o Gerenciamento do Computador (compmgmt.msc) e selecione Gerenciamento de Disco.

    2. Inicialize, particione e formate cada disco com unidade de alocação de 64K:

      Format-Volume -DriveLetter <DriveLetter> -FileSystem NTFS -NewFileSystemLabel <Label> -AllocationUnitSize 65536 -Confirm:$false
    3. Atribua letras às unidades de disco (por exemplo, D: para dados, E: para log, F: para backup, G: para temp).

    4. Crie a estrutura de diretórios para SQL Server:

      $paths = "D:\MSSQL\DATA","E:\MSSQL\Log","F:\MSSQL\Backup","G:\MSSQL\Temp"
      $paths | % { New-Item -ItemType Directory -Path $_ -Force }

Configurar SQL Server

Configure o SQL Server em ambos os nós para usar a conta de serviço do domínio, atualize os caminhos padrão para usar NetApp volumes e mova os bancos de dados do sistema para os novos locais de storage.

Passos
  1. Atualize os serviços do SQL Server e do SQL Server Agent para serem executados na conta de serviço do domínio para autenticação do cluster e suporte a failover.

    1. Em cada instância SQL, abra services.msc.

    2. Atualize Fazer logon como domain\sqlsvc para os serviços do SQL Server e SQL Server Agent.

    3. Abra o SQL Server Management Studio (SSMS) e conecte-se com sua conta de domínio.

      Se a conexão falhar, inicie o SSMS como <local computer>\Administrator. Certifique-se de que a conta Administrator esteja habilitada em Users & Groups com a senha apropriada.

  2. Crie os logins das contas de domínio com as permissões necessárias.

    Observação Substitua CVSDEMO pelo seu nome de domínio nos seguintes comandos SQL.
    USE [master]
    GO
    
    -- Create login for SQL service account
    CREATE LOGIN [CVSDEMO\sqlsvc] FROM WINDOWS
      WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
    GO
    
    -- Add to sysadmin role
    ALTER SERVER ROLE [sysadmin] ADD MEMBER [CVSDEMO\sqlsvc]
    GO
    
    -- Create user in master and assign role
    USE [master]
    GO
    CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc]
    GO
    
    -- Repeat for model, msdb, and tempdb databases
    USE [model]
    GO
    CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc]
    GO
    
    USE [msdb]
    GO
    CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc]
    GO
    
    USE [tempdb]
    GO
    CREATE USER [CVSDEMO\sqlsvc] FOR LOGIN [CVSDEMO\sqlsvc]
    GO
    ALTER ROLE [db_owner] ADD MEMBER [CVSDEMO\sqlsvc]
    GO
  3. Atualize os caminhos padrão para usar os volumes NetApp em vez da unidade do sistema operacional:

    USE [master]
    GO
    
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
      N'Software\Microsoft\MSSQLServer\MSSQLServer',
      N'BackupDirectory', REG_SZ, N'F:\MSSQL\Backup'
    GO
    
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
      N'Software\Microsoft\MSSQLServer\MSSQLServer',
      N'DefaultData', REG_SZ, N'D:\MSSQL\DATA'
    GO
    
    EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',
      N'Software\Microsoft\MSSQLServer\MSSQLServer',
      N'DefaultLog', REG_SZ, N'E:\MSSQL\Log'
    GO
  4. Mova os bancos de dados do sistema (model, msdb, tempdb e master) da unidade do sistema operacional para os volumes NetApp para melhor desempenho e gerenciamento.

    1. Verifique os caminhos atuais:

      -- Check current paths
      SELECT name, physical_name
      FROM sys.master_files
      WHERE database_id IN (DB_ID('model'), DB_ID('msdb'));
    2. Atualizar para novos locais:

      -- Move model database
      ALTER DATABASE model MODIFY FILE
        (NAME = modeldev, FILENAME = 'D:\MSSQL\Data\model.mdf');
      ALTER DATABASE model MODIFY FILE
        (NAME = modellog, FILENAME = 'E:\MSSQL\Log\modellog.ldf');
      
      -- Move msdb database
      ALTER DATABASE msdb MODIFY FILE
        (NAME = MSDBData, FILENAME = 'D:\MSSQL\Data\MSDBData.mdf');
      ALTER DATABASE msdb MODIFY FILE
        (NAME = MSDBLog, FILENAME = 'E:\MSSQL\Log\MSDBLog.ldf');
      GO
    3. Pare o SQL Server, mova manualmente os arquivos do local antigo para os novos caminhos e, em seguida, reinicie o SQL Server.

    4. Mover o banco de dados tempdb

      USE master;
      GO
      
      -- Check current tempdb files
      SELECT name, physical_name
      FROM sys.master_files
      WHERE database_id = DB_ID('tempdb');
      
      -- Change paths for tempdb
      ALTER DATABASE tempdb MODIFY FILE
        (NAME = tempdev, FILENAME = 'G:\MSSQL\Temp\tempdb.mdf');
      ALTER DATABASE tempdb MODIFY FILE
        (NAME = templog, FILENAME = 'G:\MSSQL\Temp\templog.ldf');
      GO
    5. Reinicie o SQL Server para que as alterações entrem em vigor:

      Restart-Service -Name "MSSQLSERVER" -Force
  5. Mova o banco de dados mestre

    1. Abra o SQL Server Configuration Manager.

    2. Navegue até SQL Server Services, clique com o botão direito em SQL Server (MSSQLSERVER) e selecione Properties.

    3. Clique na guia Startup Parameters.

    4. Em Parâmetros existentes, localize os parâmetros que começam com -d, -e e -l.

    5. Remova os parâmetros antigos e adicione novos:

      -dD:\MSSQL\Data\master.mdf
      -lE:\MSSQL\Log\mastlog.ldf
      -eE:\MSSQL\Log\ERRORLOG
      Descobrir portais de destino iSCSI
    6. Clique em OK.

  6. Pare o serviço do SQL Server.

  7. Mova manualmente master.mdf e mastlog.ldf da localização antiga para os novos caminhos.

  8. Se você atualizou o caminho do log de erros, mova o arquivo ERRORLOG também.

  9. Inicie o serviço SQL Server.

    Gerenciador de Configuração do SQL Server - Parâmetros de Inicialização

Configurar cluster de failover

Configure o Failover Clustering do Windows Server para fornecer alta disponibilidade para o SQL Server. Para mais detalhes, consulte "Documentação sobre Clustering de Failover do Windows Server".

Configurar regras de firewall

Abra as portas de rede necessárias em ambos os nós SQL para habilitar a comunicação do cluster, a conectividade com o SQL Server e a replicação do grupo de disponibilidade.

Passos
  1. Abra as portas necessárias em ambos os nós SQL para comunicação do cluster.

    Portas necessárias incluem: UDP 3343, TCP 3343, TCP 1433, TCP 5022, TCP 135, TCP 445, TCP 49152-65535 (RPC dinâmico).

  2. Execute o seguinte ponto de verificação em ambos os servidores para permitir a comunicação entre o SQL Server e o cluster através do firewall.

    Ajuste os números das portas se você tiver configurações personalizadas.

    # 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

    Para obter requisitos detalhados de firewall, consulte "Requisitos de serviço e porta de rede do Windows Server".

  3. Execute verificações de validação em ambos os nós antes de criar o cluster:

    Test-Connection servername
    Resolve-DnsName servername
    Get-NetAdapterBinding -ComponentID ms_tcpip6

Crie o cluster de failover

Crie um Windows Server Failover Cluster com ambos os nós do SQL Server para habilitar alta disponibilidade e recursos de failover automático.

Passos
  1. Execute cluadmin.msc ou abra o Gerenciador de Cluster de Failover no Server Manager.

    Failover Cluster Manager
  2. Selecione Create Cluster.

  3. Adicione ambos os nós SQL (sqlnode1, sqlnode2).

  4. Execute testes de validação e certifique-se de que todas as verificações sejam aprovadas. Analise e corrija quaisquer avisos antes de prosseguir.

  5. Forneça um nome de cluster (por exemplo, sqlcluwest1).

  6. Conclua a criação do cluster.

    Criação de cluster de failover

Configurar o quorum do cluster com testemunha de compartilhamento de arquivos

Configure uma testemunha de compartilhamento de arquivos para manter o quorum em um cluster de dois nós. A testemunha fornece um voto adicional para evitar cenários de split-brain e garantir a disponibilidade do cluster.

Criar compartilhamento de arquivos

Crie um compartilhamento de arquivos em uma VM em uma zona ou região diferente que tenha conectividade de rede e esteja dentro do mesmo domínio do Active Directory.

Passos
  1. Conecte-se à VM do servidor testemunha de compartilhamento de arquivos.

  2. No Server Manager, selecione Tools > Computer Management.

  3. Selecione Pastas Compartilhadas, clique com o botão direito em Compartilhamentos e selecione Novo Compartilhamento.

    Criar novo compartilhamento para testemunha de quórum do cluster
  4. Use o Assistente para Criar uma Pasta Compartilhada para criar um compartilhamento \\servername\share.

  5. Na página Caminho da Pasta, selecione Procurar.

  6. Localize ou crie um caminho para a pasta compartilhada e selecione Next.

  7. Na página Nome, Descrição e Configurações, verifique o nome e o caminho do compartilhamento e selecione Next.

  8. Na página Permissões de pasta compartilhada, selecione Personalizar permissões e clique em Custom

  9. Na caixa de diálogo Personalizar permissões, selecione Adicionar para adicionar a conta do cluster.

    Certifique-se de que a conta que está sendo usada para criar o cluster (sqlcluwest1$) tenha controle total.

  10. Clique em OK para salvar permissões.

  11. Na página Permissões de Pasta Compartilhada, selecione Concluir e selecione Concluir novamente.

Configurar configurações de quorum

Configurar o cluster para usar o compartilhamento de arquivos como testemunha para votação de quorum.

Passos
  1. No Failover Cluster Manager, clique com o botão direito do mouse no cluster e selecione More Actions > Configure Cluster Quorum Settings.

    Menu Configurar configurações de quorum do cluster
  2. No Assistente de Configurar Quórum de Cluster, clique em Avançar.

  3. Na página Selecionar Configuração de Quórum, escolha Selecionar a testemunha de quórum e clique em Next.

  4. Na página Selecionar testemunha de quórum, selecione Configurar um file share witness.

  5. Na página Configurar File Share Witness, selecione Configurar a file share witness.

  6. Insira o caminho para o compartilhamento que você criou (por exemplo, \\servername\share) e clique em Avançar.

  7. Verifique as configurações na página de Confirmação e clique em Next.

  8. Clique em Concluir.

Os recursos principais do cluster agora estão configurados com um file share witness.

Quórum do cluster configurado com file share witness

Ativar grupos de disponibilidade Always On

Ative os grupos de disponibilidade Always On em ambas as VMs do SQL Server:

Passos
  1. No menu Iniciar, abra o SQL Server Configuration Manager.

  2. Na árvore do navegador, selecione SQL Server Services.

  3. Clique com o botão direito em SQL Server (MSSQLSERVER) e selecione Propriedades.

  4. Selecione a guia Always On High Availability.

  5. Marque Ativar grupos de disponibilidade Always On.

  6. Clique em Aplicar e, em seguida, reinicie o serviço do SQL Server quando solicitado.

    Ativar Always On High Availability
  7. Repita para a segunda instância do SQL Server.

Crie um banco de dados na primeira instância do SQL Server

Crie um banco de dados na primeira instância do SQL Server.

Passos
  1. Conecte-se à primeira máquina virtual do SQL Server com uma conta de domínio que seja membro da função do servidor sysadmin fixa.

  2. Abra o SQL Server Management Studio e conecte-se à primeira instância do SQL Server.

  3. No Explorador de Objetos, clique com o botão direito do mouse em Bancos de Dados e selecione Novo Banco de Dados.

  4. Insira um nome de banco de dados (por exemplo, MyDB1) e clique em OK.

  5. Defina o modo de recuperação de banco de dados como Completo:

    ALTER DATABASE MyDB1 SET RECOVERY FULL;
    GO

Criar e configurar grupo de disponibilidade

Crie um grupo de disponibilidade Always On com commit síncrono e failover automático para fornecer alta disponibilidade para seus bancos de dados SQL Server.

  1. Faça um backup completo e um backup do log de transações do banco de dados.

    -- Full backup
    BACKUP DATABASE MyDB1
    TO DISK = 'F:\MSSQL\Backup\MyDB1_Full.bak'
    WITH INIT, COMPRESSION;
    
    -- Transaction log backup
    BACKUP LOG MyDB1
    TO DISK = 'F:\MSSQL\Backup\MyDB1_Log.trn'
    WITH INIT, COMPRESSION;
  2. Copie os arquivos de backup para a segunda instância do SQL Server e restaure-os com NORECOVERY.

    -- Restore full backup
    RESTORE DATABASE MyDB1
    FROM DISK = 'F:\MSSQL\Backup\MyDB1_Full.bak'
    WITH NORECOVERY;
    
    -- Restore log backup
    RESTORE LOG MyDB1
    FROM DISK = 'F:\MSSQL\Backup\MyDB1_Log.trn'
    WITH NORECOVERY;
  3. Crie o grupo de disponibilidade com commit síncrono, failover automático e réplicas secundárias legíveis:

    -- Run on primary replica
    CREATE AVAILABILITY GROUP sqlagwest1
    WITH (AUTOMATED_BACKUP_PREFERENCE = SECONDARY)
    FOR DATABASE MyDB1
    REPLICA ON
      N'SQLNODE1' WITH (
        ENDPOINT_URL = N'TCP://sqlnode1.cvsdemo.internal:5022',
        AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
        FAILOVER_MODE = AUTOMATIC,
        SECONDARY_ROLE(ALLOW_CONNECTIONS = YES)
      ),
      N'SQLNODE2' WITH (
        ENDPOINT_URL = N'TCP://sqlnode2.cvsdemo.internal:5022',
        AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
        FAILOVER_MODE = AUTOMATIC,
        SECONDARY_ROLE(ALLOW_CONNECTIONS = YES)
      );
    GO
  4. Crie o grupo de disponibilidade usando o Assistente de Grupo de Disponibilidade.

    Assistente de criação de grupo de disponibilidade
    Adicionar banco de dados e réplicas ao grupo de disponibilidade
    Importante Certifique-se de que a porta 5022 do firewall esteja liberada em ambos os nós SQL.
    Sincronização do grupo de disponibilidade
Grupo de disponibilidade criado com sucesso

Criar recurso de listener DNN

Crie um ouvinte de Distributed Network Name (DNN) para rotear o tráfego para o recurso clusterizado apropriado sem a necessidade de um balanceador de carga.

Utilize PowerShell para criar o recurso DNN:

$Ag = "sqlagwest1"
$Dns = "AOAGDNN"
$Port = "1433"

# Add DNN resource
Add-ClusterResource -Name $Dns -ResourceType "Distributed Network Name" -Group $Ag

# Set DNN properties
Get-ClusterResource -Name $Dns | Set-ClusterParameter -Name DnsName -Value $Dns
Get-ClusterResource -Name $Dns | Set-ClusterParameter -Name Port -Value $Port

# Start DNN resource
Start-ClusterResource -Name $Dns

# Add dependency
$AagResource = Get-ClusterResource | Where-Object {$_.ResourceType -eq "SQL Server Availability Group" -and $_.OwnerGroup -eq $Ag}
Set-ClusterResourceDependency -Resource $AagResource -Dependency "[$Dns]"

Configurar possíveis proprietários

Por padrão, o cluster associa o nome DNS do DNN a todos os nós. Exclua os nós que não participam do grupo de disponibilidade:

Passos
  1. No Failover Cluster Manager, localize o recurso DNN.

  2. Clique com o botão direito do mouse no recurso DNN e selecione Propriedades.

    Propriedades de recursos DNN
  3. Desmarque a caixa de seleção de quaisquer nós que não participam do grupo de disponibilidade.

    Configurar possíveis proprietários de DNN
  4. Clique em OK para salvar configurações.

Atualize strings de conexão do aplicativo

Atualize as strings de conexão para usar o nome do listener DNN e inclua o MultiSubnetFailover=True parâmetro:

Exemplo de string de conexão
Server=AOAGDNN,1433;Database=MyDB1;MultiSubnetFailover=True;
Observação Se o seu cliente não suportar o parâmetro MultiSubnetFailover, ele não será compatível com DNN.

Testar failover

Verifique a configuração do grupo de disponibilidade e teste o failover para garantir que o failover automático funcione corretamente entre os nós.

  1. Execute o seguinte comando em qualquer réplica para verificar a configuração do grupo de disponibilidade.

    Ambas as réplicas devem mostrar SYNCHRONOUS_COMMIT para o modo de disponibilidade e AUTOMATIC para o modo de failover, o que garante zero perda de dados durante o failover automático.

    SELECT ag.name AS AG_Name, ars.primary_replica
    FROM sys.dm_hadr_availability_group_states AS ars
    JOIN sys.availability_groups AS ag ON ag.group_id = ars.group_id;
    
    -- Check replica configuration
    SELECT replica_server_name, availability_mode_desc, failover_mode_desc
    FROM sys.availability_replicas
    WHERE group_id = (SELECT group_id FROM sys.availability_groups WHERE name = N'sqlagwest1');
    Testar failover
  2. Execute o seguinte comando no nó secundário para iniciar o failover:

    ALTER AVAILABILITY GROUP sqlagwest1 FAILOVER;
    GO
  3. Verifique se o destino da conectividade foi alterado para o novo primário:

    --
    SELECT @@SERVERNAME AS NowPrimary;

    No SSMS, expanda o nó do grupo de disponibilidade, clique com o botão direito em Always On High Availability e selecione Show Dashboard.

    O painel de controle deve exibir ambos os nós com status saudável e confirmar o failover.

    Always On High Availability dashboard mostrando failover bem-sucedido

Limpar recursos

Após concluir o tutorial, exclua os recursos que você criou para evitar cobranças adicionais:

  • Excluir instâncias do Compute Engine (sqlnode1, sqlnode2)

  • Excluir Google Cloud NetApp Volumes (volumes, pools de armazenamento, grupos de hosts)

  • Exclua os recursos de VPC e de rede se eles tiverem sido criados especificamente para este tutorial

  • Exclua o servidor file share witness, se aplicável

Consulte "Documentação do Google Cloud NetApp Volumes" e "Documentação do Google Compute Engine" para obter instruções detalhadas sobre como excluir recursos.

Onde encontrar informações adicionais

Para obter mais informações sobre o SQL Server no Google Cloud com NetApp storage, consulte a seguinte documentação: