Configurar um grupo de disponibilidade de grupo de trabalho
Aplica-se a: SQL Server na VM do Azure
Este artigo explica as etapas necessárias para criar um cluster independente de domínio do Active Directory com um grupo de disponibilidade Always On, que também é conhecido como um cluster de grupo de trabalho. Este artigo se concentra nas etapas que são relevantes para preparar e configurar o grupo de trabalho e o grupo de disponibilidade e passa pelas etapas abordadas em outros artigos, como a maneira de criar o cluster ou implantar o grupo de disponibilidade.
Pré-requisitos
Para configurar um grupo de disponibilidade de grupo de trabalho, você precisará do seguinte:
- Pelo menos duas máquinas virtuais do Windows Server 2016 (ou superior) que executam o SQL Server 2016 (ou superior), implantadas no mesmo conjunto de disponibilidade ou em zonas de disponibilidade diferentes, usando endereços IP estáticos.
- Uma rede local com no mínimo 4 endereços IP livres na sub-rede.
- Uma conta em cada computador no grupo de administradores que também tenha direitos de sysadmin dentro do SQL Server.
- Abrir portas: TCP 1433, TCP 5022 e TCP 59999.
Para referência, os seguintes parâmetros são usados neste artigo, mas podem ser modificados conforme necessário:
Nome | Parâmetro |
---|---|
Node1 | AGNode1 (10.0.0.4) |
Node2 | AGNode2 (10.0.0.5) |
Nome do cluster | AGWGAG (10.0.0.6) |
Ouvinte | AGListener (10.0.0.7) |
Sufixo DNS | ag.wgcluster.example.com |
Nome do grupo de trabalho | AGWorkgroup |
Definir sufixo DNS
Nesta etapa, configure o sufixo DNS para ambos os servidores. Por exemplo, ag.wgcluster.example.com
. Isso permite que você use o nome do objeto ao qual você deseja se conectar como um endereço totalmente qualificado em sua rede, como AGNode1.ag.wgcluster.example.com
.
Para configurar o sufixo DNS, siga estas etapas:
Acesse seu primeiro nó usando RDP e abra o Gerenciador do Servidor.
Selecione Servidor Local e, em seguida, selecione o nome da sua máquina virtual em Nome do computador.
Selecione Alterar... em Para renomear este computador... .
Altere o nome do grupo de trabalho para algo significativo, como
AGWORKGROUP
:Selecione Mais... para abrir a caixa de diálogo Sufixo DNS e Nome do Computador NetBIOS.
Digite o nome do seu sufixo DNS em Sufixo DNS primário deste computador, como
ag.wgcluster.example.com
e, em seguida, selecione OK:Confirme se o Nome completo do computador agora está mostrando o sufixo DNS e, em seguida, selecione OK para salvar as alterações:
Reinicialize o servidor quando solicitado a fazê-lo.
Repita essas etapas em outros nós que serão usados para o grupo de disponibilidade.
Editar um arquivo de host
Como não há nenhum diretório ativo, não há como autenticar conexões do Windows. Dessa forma, atribua confiança editando o arquivo de host com um editor de texto.
Para editar o arquivo de host, siga estas etapas:
Acesse a máquina virtual usando RDP.
Use o Explorador de Arquivos para acessar
c:\windows\system32\drivers\etc
.Clique com o botão direito do mouse no arquivo de hosts e abra o arquivo com o Bloco de notas (ou qualquer outro editor de texto).
No final do arquivo, adicione uma entrada para cada nó, para o grupo de disponibilidade e para o ouvinte na forma de
IP Address, DNS Suffix #comment
, como:10.0.0.4 AGNode1.ag.wgcluster.example.com #Availability group node 10.0.0.5 AGNode2.ag.wgcluster.example.com #Availability group node 10.0.0.6 AGWGAG.ag.wgcluster.example.com #Cluster IP 10.0.0.7 AGListener.ag.wgcluster.example.com #Listener IP
Definir permissões
Como não há Active Directory para gerenciar permissões, você precisa permitir manualmente que uma conta de administrador local não interna crie o cluster.
Para fazer isso, execute o seguinte cmdlet do PowerShell em uma sessão administrativa do PowerShell em cada nó:
new-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name LocalAccountTokenFilterPolicy -Value 1
Criar o cluster de failover
Nesta etapa, você criará o cluster de failover. Se você não estiver familiarizado com essas etapas, poderá segui-las no tutorial de cluster de failover.
Diferenças notáveis entre o tutorial e o que deve ser feito para um cluster de grupo de trabalho:
- Desmarque Armazenamento e Espaços de Armazenamento Diretos ao executar a validação do cluster.
- Ao adicionar os nós ao cluster, adicione o nome totalmente qualificado, como:
AGNode1.ag.wgcluster.example.com
AGNode2.ag.wgcluster.example.com
- Desmarque Adicione todo o armazenamento qualificado ao cluster.
Depois que o cluster tiver sido criado, atribua um endereço IP de cluster estático. Para fazer isso, siga estas etapas:
Em um dos nós, abra Gerenciador de Cluster de Failover, selecione o cluster, clique com o botão direito do mouse no Nome: <ClusterName> em Recursos Principais de Cluster e selecione Propriedades.
Selecione o endereço IP em Endereços IP e selecione Editar.
Selecione Usar Estático, forneça o endereço IP do cluster e, em seguida, selecione OK:
Verifique se as configurações estão corretas e, em seguida, selecione OK para salvá-las:
Criar uma testemunha de nuvem
Nesta etapa, configure uma testemunha de compartilhamento em nuvem. Se você não estiver familiarizado com as etapas, confira Implantar uma Testemunha de Nuvem para um Cluster de Failover.
Habilitar o recurso de grupo de disponibilidade
Nesta etapa, habilite o recurso de grupo de disponibilidade. Se você não estiver familiarizado com as etapas, confira o tutorial de grupo de disponibilidade.
Chaves privadas e certificados
Nesta etapa, crie certificados que um logon do SQL use no ponto de extremidade criptografado. Crie uma pasta em cada nó para manter os backups de certificado, como c:\certs
.
Observação
Se você não especificar uma data de expiração para o certificado, sua validade será de um ano a contar da data de criação. Se o certificado expirar, a conexão entre pontos de extremidade falhará.
Para configurar o primeiro nó, siga estas etapas:
Abra o SQL Server Management Studio e conecte-se ao primeiro nó, como
AGNode1
.Abra a janela Nova Consulta e execute a seguinte instrução T-SQL (Transact-SQL) após atualizar para uma senha complexa e segura:
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!'; GO --create a cert from the master key USE master; CREATE CERTIFICATE AGNode1Cert WITH SUBJECT = 'AGNode1 Certificate'; GO --Backup the cert and transfer it to AGNode2 BACKUP CERTIFICATE AGNode1Cert TO FILE = 'C:\certs\AGNode1Cert.crt'; GO
Em seguida, crie o ponto de extremidade de HADR e use o certificado para autenticação executando esta instrução T-SQL (Transact-SQL):
--CREATE or ALTER the mirroring endpoint CREATE ENDPOINT hadr_endpoint STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE AGNode1Cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Use o Explorador de Arquivos para acessar a localização de arquivo em que o certificado se encontra, como
c:\certs
.Faça uma cópia manual do certificado do primeiro nó, como
AGNode1Cert.crt
, e transfira-o para a mesma localização no segundo nó.
Para configurar o segundo nó, siga estas etapas:
Conecte-se ao segundo nó com o SQL Server Management Studio, como
AGNode2
.Em uma janela Nova Consulta, execute a seguinte instrução T-SQL (Transact-SQL) após atualizar para uma senha complexa e segura:
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'PassWOrd123!'; GO --create a cert from the master key USE master; CREATE CERTIFICATE AGNode2Cert WITH SUBJECT = 'AGNode2 Certificate'; GO --Backup the cert and transfer it to AGNode1 BACKUP CERTIFICATE AGNode2Cert TO FILE = 'C:\certs\AGNode2Cert.crt'; GO
Em seguida, crie o ponto de extremidade de HADR e use o certificado para autenticação executando esta instrução T-SQL (Transact-SQL):
--CREATE or ALTER the mirroring endpoint CREATE ENDPOINT hadr_endpoint STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE AGNode2Cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ); GO
Use o Explorador de Arquivos para acessar a localização de arquivo em que o certificado se encontra, como
c:\certs
.Faça uma cópia manual do certificado do segundo nó, como
AGNode2Cert.crt
, e transfira-o para a mesma localização no primeiro nó.
Se houver outros nós no cluster, repita essas etapas, modificando os respectivos nomes de certificado.
Criar logons
A autenticação de certificado é usada para sincronizar dados entre os nós. Para permitir isso, crie um logon para o outro nó, crie um usuário para o logon, crie um certificado para que o logon use o certificado de backup e, em seguida, conceda a conexão no ponto de extremidade de espelhamento.
Para fazer isso, primeiro execute a seguinte consulta T-SQL (Transact-SQL) no primeiro nó, como AGNode1
:
--create a login for the AGNode2
USE master;
CREATE LOGIN AGNode2_Login WITH PASSWORD = 'PassWord123!';
GO
--create a user from the login
CREATE USER AGNode2_User FOR LOGIN AGNode2_Login;
GO
--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode2Cert
AUTHORIZATION AGNode2_User
FROM FILE = 'C:\certs\AGNode2Cert.crt'
GO
--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode2_login];
GO
Em seguida, execute a seguinte consulta T-SQL (Transact-SQL) no segundo nó, como AGNode2
:
--create a login for the AGNode1
USE master;
CREATE LOGIN AGNode1_Login WITH PASSWORD = 'PassWord123!';
GO
--create a user from the login
CREATE USER AGNode1_User FOR LOGIN AGNode1_Login;
GO
--create a certificate that the login uses for authentication
CREATE CERTIFICATE AGNode1Cert
AUTHORIZATION AGNode1_User
FROM FILE = 'C:\certs\AGNode1Cert.crt'
GO
--grant connect for login
GRANT CONNECT ON ENDPOINT::hadr_endpoint TO [AGNode1_login];
GO
Se houver outros nós no cluster, repita essas etapas, modificando os respectivos nomes de certificado e usuário.
Configurar um conjunto de disponibilidade
Nesta etapa, configure seu grupo de disponibilidade e adicione bancos de dados a ele. Não crie um ouvinte neste momento. Se você não estiver familiarizado com as etapas, confira o tutorial de grupo de disponibilidade. Inicie um failover e um failback para verificar se tudo está funcionando como deveria.
Observação
Se houver uma falha durante o processo de sincronização, talvez seja necessário conceder direitos sysadmin ao NT AUTHORITY\SYSTEM
para criar recursos de cluster no primeiro nó, como AGNode1
temporariamente.
Configurar um balanceador de carga
Nesta etapa final, configure o balanceador de carga usando o portal do Azure ou o PowerShell.
No entanto, pode haver algumas limitações ao usar a GUI do Cluster do Windows e, como tal, use o PowerShell para criar um ponto de acesso do cliente ou o nome da rede para o ouvinte com o seguinte script de exemplo:
Add-ClusterResource -Name "IPAddress1" -ResourceType "IP Address" -Group "WGAG"
Get-ClusterResource -Name IPAddress1 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 1";"Address" = "10.0.0.4";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0}
Add-ClusterResource -Name "IPAddress2" -ResourceType "IP Address" -Group "WGAG"
Get-ClusterResource -Name IPAddress2 | Set-ClusterParameter -Multiple @{"Network" = "Cluster Network 2";"Address" = "10.0.0.5";"SubnetMask" = "255.0.0.0";"EnableDHCP" = 0}
Add-ClusterResource -Name "TestName" -Group "WGAG" -ResourceType "Network Name"
Get-ClusterResource -Name "TestName" | Set-ClusterParameter -Multiple @{"DnsName" = "TestName";"RegisterAllProvidersIP" = 1}
Set-ClusterResourceDependency -Resource TestName -Dependency "[IPAddress1] or [IPAddress2]"
Start-ClusterResource -Name TestName -Verbose
Próximas etapas
Depois que o grupo de disponibilidade for implantado, considere otimizar as Configurações de HADR para o SQL Server em VMs do Azure.
Para obter mais informações, consulte: