Este tutorial oferece uma vista geral de como configurar um ambiente altamente resiliente Google Cloud para o SQL Server instalado no armazenamento de partilha de ficheiros (SMB) do bloco de mensagens do servidor através dos volumes NetApp do Google Cloud.
Os grupos de disponibilidade Always On (AG) do Microsoft SQL Server permitem-lhe replicar bases de dados em várias instâncias do SQL Server Enterprise. Normalmente, as instâncias Always On do SQL Server tradicionais requerem que cada nó mantenha uma cópia dos dados, o que pode tornar-se rapidamente dispendioso à medida que as bases de dados crescem. Por exemplo, numa implementação tradicional do SQL Server Always On, se as bases de dados tiverem um tamanho de 10 TB, cada réplica tem de ter, pelo menos, 10 TB de armazenamento aprovisionado. Uma das vantagens de ter um cluster de comutação por falha do Windows Server (WSFC) implementado para o SQL Server é que só precisa de ter uma cópia dos dados, que é partilhada entre os nós do cluster. Por conseguinte, a execução do SQL Server Always On numa instância de cluster de comutação por falha (FCI) num WSFC pode gerar imediatamente poupanças de custos reduzindo a quantidade de armazenamento necessária.
O NetApp Volumes é uma solução de armazenamento na nuvem para executar cargas de trabalho do SQL Server de elevado desempenho em combinação com instâncias do Compute Engine. A base de dados do SQL Server através de SMB em volumes NetApp oferece um nível de resiliência muito elevado entre as instâncias e o serviço de armazenamento. Google Cloud A comutação em caso de falha transparente do SMB permite operações de manutenção nos volumes NetApp sem interromper a conetividade com as aplicações de servidor que armazenam e acedem a dados em volumes SMB. Para suportar a comutação em alternativa transparente de SMB, os volumes NetApp suportam a opção de partilhas de disponibilidade contínua (CA) de SMB para utilização com cargas de trabalho do SQL Server. Isto oferece melhorias de desempenho, escalabilidade e vantagens de custo para instâncias únicas, instâncias de cluster de comutação por falha Always On (AOFC) e implementações de grupo de disponibilidade Always On.
Esta página destina-se aos administradores de volumes NetApp e de bases de dados do SQL Server responsáveis pela implementação do Microsoft SQL Server no Google Cloud. Assume o seguinte:
- Conhece os vários componentes da solução
- Já implementou o Active Directory no Google Cloud
Objetivos
Este tutorial tem como objetivo alcançar os seguintes objetivos:- Crie um volume da NetApp para o SQL Server
- Implemente um cluster de failover sempre ativo através de SMB em volumes NetApp
Custos
Este tutorial usa componentes faturáveis do Google Cloud, incluindo:
Use a calculadora de preços para gerar uma estimativa de custos com base na sua utilização prevista.
Antes de começar
Para este tutorial, precisa de um Google Cloud projeto. Pode criar um novo ou selecionar um projeto que já criou:
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Um domínio do Active Directory com, pelo menos, um controlador de domínio. Pode criar um domínio do Active Directory através do Microsoft AD gerido. Em alternativa, pode implementar um ambiente do Active Directory personalizado no Compute Engine e configurar uma zona de encaminhamento de DNS privado que encaminha as consultas de DNS para os controladores de domínio.
- Um utilizador do Active Directory que tem autorização para associar computadores ao domínio
e pode iniciar sessão através do RDP. Se estiver a usar o Managed Microsoft AD, pode usar o utilizador
setupadmin
. - Um projeto Google Cloud e uma VPC com conetividade aos controladores de domínio do Active Directory.
- Certifique-se de que a API NetApp Volumes está ativada para o seu projeto do Google Cloud.
-
In the Google Cloud console, activate Cloud Shell.
Prepare o seu projeto e rede
Para preparar o seu Google Cloud projeto e nuvem privada virtual (VPC) para a implementação de grupos de disponibilidade Always On do SQL Server, faça o seguinte:
Na Google Cloud consola, abra o Cloud Shell clicando no botão Ativar Cloud Shell
.
Inicialize as seguintes variáveis:
VPC_NAME=
VPC_NAME
SUBNET_NAME=SUBNET_NAME
Substitua o seguinte:
VPC_NAME
: nome da sua VPCSUBNET_NAME
: nome da sua sub-rede
Defina o seu ID do projeto predefinido:
gcloud config set project
PROJECT_ID
Substitua
PROJECT_ID
pelo ID do seu Google Cloud projeto.Predefina a sua região:
gcloud config set compute/region
REGION
Substitua
REGION
pelo ID da região na qual quer fazer a implementação.Predefina a sua zona:
gcloud config set compute/zone
ZONE
Substitua
ZONE
pelo ID da zona na qual quer fazer a implementação.
Crie SMB em volumes NetApp para o SQL Server
Para criar um NetApp Volumes, tem de criar uma política do Active Directory, um acesso aos serviços privados, um conjunto de armazenamento e um volume de armazenamento.
Crie um novo acesso a serviços privados para volumes NetApp através das instruções fornecidas em Configure o acesso a serviços privados.
Para criar uma nova política do Active Directory, faça o seguinte:
Na Google Cloud consola, aceda à página Volumes do NetApp.
No painel de navegação, clique em Políticas do Active Directory na secção Políticas.
Clique no botão Criar.
Especifique um nome para a política do Active Directory.
Em Região, selecione a região disponível mais próxima de onde as instâncias do SQL Server vão ser alojadas.
Na secção Detalhes da ligação do Active Directory, faculte as seguintes informações:
- Nome do domínio
- Endereços do servidor DNS do Active Directory
- Nome do site do Active Directory
- Nome da unidade organizacional
- Prefixo do nome NetBIOS
Na secção Credenciais do Active Directory, indique as credenciais de um utilizador que tem autorização para associar computadores ao domínio especificado.
Na secção Definições de SMB, indique os Operadores de cópia de segurança e os Utilizadores com privilégios de segurança, se aplicável.
Clique em Criar para concluir o processo de criação de uma nova política do Active Directory.
Para criar um novo conjunto de armazenamento, faça o seguinte:
- No painel de navegação, clique em Pools de armazenamento na secção Armazenamento.
- Clique no botão Criar.
- Introduza um nome para o conjunto de armazenamento.
- Em Localização, selecione a região disponível mais próxima de onde as instâncias do SQL Server vão ser alojadas.
Selecione um nível de serviço que satisfaça o desempenho de armazenamento esperado.
Introduza a capacidade do conjunto de armazenamento. A capacidade do conjunto de armazenamento define a capacidade de armazenamento total que pode ser atribuída a todos os volumes no conjunto.
Na lista Rede, selecione a VPC na qual as instâncias do SQL Server vão ser alojadas.
Na secção Política do Active Directory, selecione Atribuir uma política do Active Directory ao conjunto de armazenamento e selecione a política do Active Directory criada no passo anterior.
Clique no botão Criar para concluir o processo de criação de um novo conjunto de armazenamento.
Para testar a ligação entre o conjunto de armazenamento e o Active Directory, faça o seguinte:
Na Google Cloud consola, aceda à página Política do Active Directory.
Clique na política do Active Directory que atribuiu ao conjunto de armazenamento no passo anterior.
Localize Pools de armazenamento associados e clique em Testar ligação do Active Directory.
Para criar um novo volume de armazenamento, faça o seguinte:
- No painel de navegação, clique em Volumes na secção Armazenamento.
- Clique no botão Criar.
- Especifique um nome para o volume de armazenamento.
- Em Detalhes do conjunto de armazenamento, clique em Selecionar conjunto de armazenamento para selecionar o conjunto de armazenamento criado no passo anterior.
- Na secção Detalhes do volume, faculte as seguintes informações:
- Partilhar nome
- Capacidade de volume
- Na secção Configuração de protocolos, selecione o protocolo SMB e Ativar suporte de partilha da AC para o SQL Server e o FSLogix.
- Clique no botão Criar para concluir o processo de criação de um novo volume de armazenamento.
Crie regras de firewall
Para permitir que os clientes se liguem ao SQL Server, permita a comunicação entre os nós do cluster de failover do Windows Server (WSFC) e, para permitir que o equilibrador de carga realize verificações de estado, tem de criar várias regras de firewall. Para simplificar a criação destas regras de firewall, pode usar etiquetas de rede:
- Os WSFCs que usa estão anotados com a etiqueta
wsfc-node
. - Todos os servidores, incluindo o servidor de testemunho, são anotados com a etiqueta
wsfc
.
Para criar regras de firewall que usem estas etiquetas de rede, siga estes passos:
- Regresse à sua sessão do Cloud Shell existente.
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
Crie uma regra de firewall que permita verificações de funcionamento a partir dos intervalos de IP dos Google Cloud testadores:
gcloud compute firewall-rules create allow-health-check-to-wsfc-nodes \ --direction=INGRESS \ --action=allow \ --rules=tcp \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=wsfc-node \ --network=$VPC_NAME \ --priority 10000
Crie instâncias de VM
Agora, vai implementar três instâncias de VM para o cluster de comutação por falha.
Node-1
vai alojar a réplica principal da base de dados do SQL Server enode-2
vai alojar a réplica secundária. As duas instâncias de VM têm de:- Estar localizadas na mesma região para que possam ser acedidas por um Network Load Balancer de encaminhamento interno
Ter o WSFC e o SQL Server 2022 instalados através da imagem premium do SQL Server
Ter o suporte do WSFC do Compute Engine ativado
Para fornecer um voto de desempate e alcançar um quórum para o cenário de comutação por falha, implementa uma terceira instância de VM
node-3
que funciona como um teste de partilha de ficheiros.- Regresse à sua sessão do Cloud Shell existente.
Crie um script para os nós do WSFC. O script instala a funcionalidade do Windows necessária e cria regras de firewall para o WSFC e o SQL Server:
cat << "EOF" > specialize-node.ps1 $ErrorActionPreference = "stop" # Install required Windows features Install-WindowsFeature Failover-Clustering -IncludeManagementTools Install-WindowsFeature RSAT-AD-PowerShell # Open firewall for WSFC netsh advfirewall firewall add rule name="Allow SQL Server health check" dir=in action=allow protocol=TCP localport=59997 # Open firewall for SQL Server netsh advfirewall firewall add rule name="Allow SQL Server" dir=in action=allow protocol=TCP localport=1433 # Open firewall for SQL Server replication netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022 EOF
Crie as instâncias de VM. Nas duas VMs que funcionam como nós do WSFC, anexe um disco de dados adicional e ative o clustering de failover do Windows Server definindo a chave de metadados
enable-wsfc
comotrue
: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"
Para associar as 3 instâncias de VM ao Active Directory, faça o seguinte para cada uma das 3 instâncias de VM:
Monitorize o processo de inicialização da VM vendo a respetiva saída da porta de série:
gcloud compute instances tail-serial-port-output
NAME
Substitua
NAME
pelo nome da instância de VM.Aguarde alguns minutos até ver o resultado
Instance setup finished
e, em seguida, prima Ctrl+C. Neste momento, a instância de VM está pronta a ser usada.Crie um nome de utilizador e uma palavra-passe para a instância de VM
Estabeleça ligação à VM através do Ambiente de Trabalho Remoto e inicie sessão com o nome de utilizador e a palavra-passe criados no passo anterior.
Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
Clique em Sim para confirmar o pedido de elevação.
Associe a instância de VM ao seu domínio do Active Directory e reinicie:
Add-Computer -Domain
DOMAIN -Restart
Substitua
DOMAIN
pelo nome DNS do seu domínio do Active Directory.Aguarde que a instância de VM seja reiniciada.
Atribua autorizações de armazenamento
Para atribuir autorizações ao armazenamento de volume na nuvem, conclua os seguintes passos:
Na Google Cloud consola, selecione Volumes na nuvem e selecione o volume que acabou de criar.
Ligue-se a
node-1
através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio.Abra o Explorador do Windows e clique com o botão direito do rato em Este PC.
Selecione Mapear unidade de rede.
Cole o caminho SMB copiado na pasta.
No início de sessão, desative a opção Voltar a associar.
Clique em Concluir.
Clique com o botão direito do rato na unidade de rede mapeada e selecione Propriedades.
No separador Segurança, clique em Editar.
Remova todos e adicione o instalador do SQL Server e as contas de serviço do SQL Server com autorizações de controlo total.
Clique em Sim para confirmar o pedido de elevação.
Reserve endereços IP do cluster
Reserve dois endereços IP estáticos na sua VPC, um para o endereço IP do cluster WSFC e outro para o equilibrador de carga interno.
Reserve um IP estático para o equilibrador de carga interno e capture o endereço numa nova variável de ambiente denominada
LOADBALANCER_ADDRESS
:gcloud compute addresses create wsfc \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --subnet $SUBNET_NAME LOADBALANCER_ADDRESS=$(gcloud compute addresses describe wsfc \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --format=value\(address\)) echo "Load Balancer IP: $LOADBALANCER_ADDRESS"
Tome nota do endereço IP, pois vai precisar dele mais tarde.
Reserve outro endereço IP estático que usa como IP do cluster:
gcloud compute addresses create wsfc-cluster \ --subnet $SUBNET_NAME \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) CLUSTER_ADDRESS=$(gcloud compute addresses describe wsfc-cluster \ --region $(gcloud config get-value compute/zone | rev | cut -c 3- | rev) \ --format=value\(address\)) echo "Cluster IP: $CLUSTER_ADDRESS"
Tome nota do endereço IP, pois vai precisar dele mais tarde.
O projeto e a VPC estão agora prontos para a implementação do WSFC e do SQL Server.
Crie uma partilha de ficheiros de testemunho
Para preparar
witness
para funcionar como testemunha de partilha de ficheiros, crie uma partilha de ficheiros e conceda-se a si próprio e aos dois nós do WSFC acesso à partilha de ficheiros:- Ligue-se a
witness
através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio. - Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
- Clique em Sim para confirmar o pedido de elevação.
Crie a pasta de testemunho e partilhe-a:
New-Item "C:\QWitness" –type directory icacls C:\QWitness\ /grant 'node-1$:(OI)(CI)(M)' icacls C:\QWitness\ /grant 'node-2$:(OI)(CI)(M)' New-SmbShare ` -Name QWitness ` -Path "C:\QWitness" ` -Description "SQL File Share Witness" ` -FullAccess $env:username,node-1$,node-2$
Implementar o cluster de comutação por falha
Agora, vai usar as instâncias de VM para implementar um WSFC e o SQL Server.
Implemente o WSFC
Já tem tudo pronto para criar o cluster de failover:
- Ligue-se a
node-1
através do Ambiente de Trabalho Remoto. Inicie sessão com a sua conta de utilizador do domínio. - Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
- Clique em Sim para confirmar o pedido de elevação.
Crie um novo cluster:
New-Cluster ` -Name windows-fci ` -Node node-1,node-2 ` -NoStorage ` -StaticAddress
CLUSTER_ADDRESS
Substitua
CLUSTER_ADDRESS
pelo endereço IP do cluster que criou anteriormente.Regresse à sessão do PowerShell em
witness
e conceda ao objeto de computador virtual do cluster autorização para aceder à partilha de ficheiros:icacls C:\QWitness\ /grant 'windows-fci$:(OI)(CI)(M)' Grant-SmbShareAccess ` -Name QWitness ` -AccountName 'windows-fci$' ` -AccessRight Full ` -Force
Regresse à sessão do PowerShell em
node-1
e configure o cluster para usar a partilha de ficheiros emwitness
como um quorum de cluster:Set-ClusterQuorum -FileShareWitness \\witness\QWitness
Verifique se o cluster foi criado com êxito:
Test-Cluster
Pode ver alguns avisos que podem ser ignorados com segurança:
WARNING: System Configuration - Validate All Drivers Signed: The test reported some warnings.. WARNING: Network - Validate Network Communication: The test reported some warnings.. WARNING: Test Result: HadUnselectedTests, ClusterConditionallyApproved Testing has completed for the tests you selected. You should review the warnings in the Report. A cluster solution is supported by Microsoft only if you run all cluster validation tests, and all tests succeed (with or without warnings).
Também pode iniciar o snap-in MMC do Gestor de clusters de failover para rever o estado do cluster executando
cluadmin.msc
.Se estiver a usar o AD gerido, adicione a conta do computador usada pelo WSFC ao grupo Cloud Service Domain Join Accounts para que possa associar instâncias de VMs ao domínio:
Add-ADGroupMember ` -Identity "Cloud Service Domain Join Accounts" ` -Members windows-fci$
Remova a instalação predefinida do SQL Server
Agora, vai remover a instalação predefinida do SQL Server dos dois nós e substituí-la por uma nova configuração de FCI.
Para cada um dos dois nós do WSFC,
node-1
enode-2
, siga estes passos:- Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
- Clique em Sim para confirmar o pedido de elevação.
Remova a instância predefinida do SQL Server:
C:\sql_server_install\Setup.exe /Action=Uninstall /FEATURES=SQL,AS,IS,RS /INSTANCENAME=MSSQLSERVER /Q
Remova o controlador OLE da Microsoft:
Get-Package -Name "Microsoft OLE*" | Uninstall-Package -Force
Remova o controlador ODBC da Microsoft:
Get-Package -Name "Microsoft ODBC*" | Uninstall-Package -Force
Reinicie o computador:
Restart-Computer
Aguarde que a instância de VM seja reiniciada.
Instale o FCI do SQL Server
Antes de instalar a nova configuração de FCI, verifique se o
node-1
é o nó ativo no cluster:- Volte a ligar-se ao
node-1
através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do domínio. - Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e selecione Executar
- Introduza
cluadmin.msc
e selecione OK. No painel da janela do lado esquerdo, navegue para Gestor de clusters de failover > windows-fci e faça o seguinte:
Verifique se o servidor anfitrião atual está definido como
node-1
.Se o servidor anfitrião atual estiver definido como
node-2
, clique com o botão direito do rato em windows-fci no painel da janela do lado esquerdo e selecione Mais ações > Mover recursos do cluster principal > Selecionar nó… > node-1 e clique em OK.
Vai criar uma nova instalação de cluster de failover do SQL Server em
node-1
:- Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
Clique em Sim para confirmar o pedido de elevação.
Inicie a configuração do SQL Server:
& c:\sql_server_install\setup.exe
No menu do lado esquerdo, selecione Instalação.
Selecione Nova instalação do cluster de comutação por falha do SQL Server.
Na página Edição, introduza a chave do produto, selecione o tipo de licença do software e clique em Seguinte.
Na página Termos de licença, reveja os termos e, se os aceitar, clique em Seguinte.
Na página Microsoft Update, clique em Seguinte para iniciar a instalação.
Na página Instalar regras de cluster de failover, é apresentado um aviso Avisos de validação de cluster do MSCS e Firewall do Windows. Pode ignorar estes avisos e clicar em Seguinte.
Na página Feature Selection (Seleção de funcionalidades), selecione Database Engine Services (Serviços do motor de base de dados) e clique em Next (Seguinte).
Na página Configuração da instância, introduza
sql
como nome da rede e clique em Seguinte.Na página Grupo de recursos do cluster, pode ignorar os avisos de qualificação e clicar em Seguinte.
Na página Cluster Disk Selection (Seleção de disco do cluster), clique em Next (Seguinte).
Na página Configuração da rede de clusters, configure as seguintes definições e, de seguida, clique em Seguinte:
- DHCP: clear
- Endereço IP: introduza o endereço IP do balanceador de carga interno
Na página Configuração do servidor, configure as seguintes definições para o SQL Server Agent e o SQL Server Database Engine:
- Nome da conta:
DOMAIN\sql_server
, ondeDOMAIN
é o nome NetBIOS do seu domínio do Active Directory - Palavra-passe: introduza a palavra-passe do utilizador
sql_server
- Nome da conta:
Selecione o separador Ordenação e selecione a ordenação que quer usar. Em seguida, clique em Seguinte.
Na página Configuração do motor de base de dados, selecione Adicionar utilizador atual para designar o utilizador atual como administrador do SQL Server. No separador Diretórios de dados, introduza o caminho SMB no campo Diretório raiz de dados e selecione Seguinte. É apresentada uma janela de mensagem a informar que deve verificar se a conta de serviço do SQL Server tem autorização de partilha de controlo total. Selecione Sim para continuar.
Na página Pronto para instalar, reveja as definições e, de seguida, selecione Instalar.
Após a conclusão da instalação, selecione Fechar.
Agora, adicione
node-2
ao cluster de comutação por falha do SQL Server:- Estabeleça ligação a
node-2
através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do seu domínio. - Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
- Clique em Sim para confirmar o pedido de elevação.
Inicie a configuração do SQL Server:
& c:\sql_server_install\setup.exe
No menu do lado esquerdo, selecione Instalação.
Selecione Adicionar nó a um cluster de failover do SQL Server.
Siga as instruções do assistente de instalação e aceite as definições predefinidas até aceder à página Contas de serviço.
Na página Contas de serviço, introduza a palavra-passe que criou anteriormente para o SQL Server Agent e o SQL Server Database Engine. Em seguida, selecione Seguinte.
Na página Pronto para instalar, reveja as definições e, de seguida, selecione Instalar.
Após a conclusão da instalação, selecione Fechar.
Configure verificações de funcionamento
Como passo final, configure o cluster para expor um ponto final de verificação do estado que pode ser usado por um equilibrador de carga interno:
- Regresse à sessão do PowerShell em
node-2
Inicialize uma variável com o endereço IP do balanceador de carga.
$LoadBalancerIP = '
IP_ADDRESS
'Substitua
IP_ADDRESS
pelo endereço IP do endereçowsfc
que reservou anteriormente.Configure o cluster de comutação por falha para responder ao serviço de verificação de funcionamento:
$SqlGroup = Get-ClusterGroup | Where-Object {$_.Name.StartsWith("SQL Server")} $SqlIpAddress = Get-ClusterResource | Where-Object {$_.Name.StartsWith("SQL IP Address")} $SqlIpAddress | Set-ClusterParameter -Multiple @{ 'Address'=$LoadBalancerIP; 'ProbePort'= 59997; 'SubnetMask'='255.255.255.255'; 'Network'= (Get-ClusterNetwork).Name; 'EnableDhcp'=0; }
Reinicie o recurso de cluster:
$SqlIpAddress | Stop-ClusterResource $SqlIpAddress | Start-ClusterResource
Reinicie o grupo de clusters:
$SqlGroup | Stop-ClusterGroup $SqlGroup | Start-ClusterGroup
Crie um balanceador de carga interno
Para fornecer um único ponto final para clientes do SQL Server, vai implementar um equilibrador de carga interno. O balanceador de carga usa uma verificação do estado que garante que o tráfego é direcionado para o nó ativo do WSFC.
- Regresse à sua sessão do Cloud Shell existente.
Crie um grupo de instâncias não gerido e adicione os dois nós ao grupo:
REGION=$(gcloud config get-value compute/region) gcloud compute instance-groups unmanaged create wsfc-group-a \ --zone $REGION-a gcloud compute instance-groups unmanaged add-instances wsfc-group-a \ --zone $REGION-a --instances node-1 gcloud compute instance-groups unmanaged create wsfc-group-b \ --zone $REGION-b gcloud compute instance-groups unmanaged add-instances wsfc-group-b \ --zone $REGION-b --instances node-2
Crie uma verificação de funcionamento que o balanceador de carga possa usar para determinar qual é o nó ativo.
gcloud compute health-checks create tcp wsfc-healthcheck \ --check-interval="2s" \ --healthy-threshold=1 \ --unhealthy-threshold=2 \ --port=59997 \ --timeout="1s"
A porta de sondas de verificação do estado de funcionamento é a
59997
, que é a porta que configurou anteriormente comoProbePort
para o endereço IP do cluster WSFC.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
Crie o balanceador de carga interno:
gcloud compute forwarding-rules create wsfc-sql \ --load-balancing-scheme internal \ --address $LOADBALANCER_ADDRESS \ --ports 1433 \ --network $VPC_NAME \ --subnet $SUBNET_NAME \ --region $REGION \ --backend-service wsfc-backend
Testar o cluster de comutação por falha
Concluiu a instalação do cluster de ativação pós-falha, mas ainda tem de testar se o cluster funciona corretamente.
Prepare um cliente
Crie uma nova instância de VM que pode usar para se ligar ao cluster de failover:
- Regresse à sua sessão do Cloud Shell existente.
Criar uma nova instância de VM:
gcloud compute instances create sqlclient \ --machine-type n2-standard-2 \ --subnet $SUBNET_NAME \ --image-family sql-ent-2022-win-2022 \ --image-project windows-sql-cloud \ --boot-disk-size 50 \ --boot-disk-type pd-ssd
Monitorize o processo de inicialização da VM vendo a respetiva saída da porta de série:
gcloud compute instances tail-serial-port-output sqlclient
Aguarde alguns minutos até ver a saída Instance setup finished e, de seguida, prima Ctrl+C. Neste momento, a instância de VM está pronta a ser usada.
Crie um nome de utilizador e uma palavra-passe para a instância de VM
Estabeleça ligação à VM através do Ambiente de Trabalho Remoto e inicie sessão com o nome de utilizador e a palavra-passe criados no passo anterior.
Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell (administrador).
Clique em Sim para confirmar o pedido de elevação.
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.Reinicie a instância de VM:
Restart-Computer
Aguarde que a instância de VM seja reiniciada.
Execute o teste
Use a VM
sqlclient
para testar se consegue estabelecer ligação ao cluster de comutação por falha e para verificar se a comutação por falha funciona corretamente:- Estabeleça ligação a
sqlclient
através do Ambiente de Trabalho Remoto e inicie sessão com o utilizador do seu domínio. - Clique com o botão direito do rato no botão Iniciar (ou prima Win+X) e clique em Windows PowerShell.
Estabeleça ligação ao cluster do SQL Server através do respetivo nome de rede
sql
e consulte a tabeladm_os_cluster_nodes
:& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
O resultado deve ter o seguinte aspeto:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 0 up 1 NODE-2 0 up 0 (2 rows affected)
Tenha em atenção que
node-1
é o proprietário atual do recurso de cluster de comutação por falha do SQL Server.Regresse ao Cloud Shell e desative a VM node-1 para testar o cenário de comutação por falha:
gcloud compute instances stop node-1
Repetir a consulta:
& "$env:ProgramFiles\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\SQLCMD.EXE" ` -S sql -E -Q "SELECT * FROM sys.dm_os_cluster_nodes"
O resultado deve ter agora o seguinte aspeto:
NodeName status status_description is_current_owner ------------------------------ ----------- ------------------ ---------------- NODE-1 1 down 0 NODE-2 0 up 1 (2 rows affected)
Repare que, apesar da perda de
node-1
, a consulta é bem-sucedida e mostra quenode-2
é agora o proprietário atual do cluster de comutação por falha.
Limpar
Depois de concluir o tutorial, pode limpar os recursos que criou para que deixem de usar a quota e incorrer em custos. As secções seguintes descrevem como eliminar ou desativar estes recursos.
Eliminar o projeto
A forma mais fácil de eliminar a faturação é eliminar o projeto que criou para o tutorial.
Para eliminar o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.