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 Ative Directory com um grupo de disponibilidade Always On; Isso também é conhecido como um cluster de grupo de trabalho. Este artigo se concentra nas etapas relevantes para preparar e configurar o grupo de trabalho e o grupo de disponibilidade e ignora as etapas abordadas em outros artigos, como como criar o cluster ou implantar o grupo de disponibilidade.
Pré-requisitos
Para configurar um grupo de disponibilidade de grupo de trabalho, você precisa do seguinte:
- Pelo menos duas máquinas virtuais do Windows Server 2016 (ou superior) executando o SQL Server 2016 (ou superior), implantadas no mesmo conjunto de disponibilidade ou zonas de disponibilidade diferentes, usando endereços IP estáticos.
- Uma rede local com um mínimo de 4 endereços IP livres na sub-rede.
- Uma conta em cada máquina no grupo de administradores que também tem direitos sysadmin no SQL Server.
- Portas abertas: TCP 1433, TCP 5022, TCP 59999.
Para referência, os seguintes parâmetros são usados neste artigo, mas podem ser modificados conforme necessário:
Name | Parâmetro |
---|---|
Nó1 | AGNode1 (10.0.0.4) |
Nó2 | 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 um 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 deseja se conectar como um endereço totalmente qualificado em sua rede, como AGNode1.ag.wgcluster.example.com
.
Para configurar o sufixo DNS, siga estes passos:
RDP no seu primeiro nó 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 ser algo significativo, como
AGWORKGROUP
:Selecione Mais... para abrir a caixa de diálogo Sufixo DNS e Nome do Computador NetBIOS.
Digite o nome do sufixo DNS em Sufixo DNS primário deste computador, como
ag.wgcluster.example.com
e selecione OK:Confirme se o Nome completo do computador está agora a mostrar o sufixo DNS e, em seguida, selecione OK para guardar as alterações:
Reinicie o servidor quando lhe for pedido para o fazer.
Repita essas etapas em quaisquer outros nós a serem usados para o grupo de disponibilidade.
Editar um arquivo host
Como não há um diretório ativo, não há como autenticar conexões do Windows. Como tal, atribua confiança editando o arquivo host com um editor de texto.
Para editar o ficheiro anfitrião, siga estes passos:
RDP na sua máquina virtual.
Use o Explorador de Arquivos para ir para
c:\windows\system32\drivers\etc
.Clique com o botão direito do mouse no arquivo 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ó, o grupo de disponibilidade e o ouvinte na forma de
IP Address, DNS Suffix #comment
: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á Ative 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 ativação pós-falha
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 Adicionar todo o armazenamento qualificado ao cluster.
Depois que o cluster tiver sido criado, atribua um endereço IP estático do cluster. Para o fazer, siga estes passos:
Em um dos nós, abra o Gerenciador de Cluster de Failover, selecione o cluster, clique com o botão direito do mouse em Nome: <ClusterNam> em Recursos Principais do 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 selecione OK:
Verifique se as configurações estão corretas e selecione OK para salvá-las:
Criar uma testemunha na nuvem
Nesta etapa, configure uma testemunha de compartilhamento de nuvem. Se você não estiver familiarizado com as etapas, consulte Implantar uma testemunha de nuvem para um cluster de failover.
Ativar o recurso de grupo de disponibilidade
Nesta etapa, habilite o recurso de grupo de disponibilidade. Se você não estiver familiarizado com as etapas, consulte o tutorial do grupo de disponibilidade.
Criar chaves e certificados
Nesta etapa, crie certificados que um logon SQL usa no ponto de extremidade criptografado. Crie uma pasta em cada nó para armazenar os backups de certificado, como c:\certs
.
Para configurar o primeiro nó, siga estes passos:
Abra o SQL Server Management Studio e conecte-se ao seu primeiro nó, como
AGNode1
.Abra uma janela Nova consulta e execute a seguinte instrução Transact-SQL (T-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 HADR e use o certificado para autenticação executando esta instrução Transact-SQL (T-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 ir para o local do arquivo onde está o certificado, como
c:\certs
.Faça manualmente uma cópia do certificado, como
AGNode1Cert.crt
, do primeiro nó, e transfira-o para o mesmo local no segundo nó.
Para configurar o segundo nó, siga estes passos:
Conecte-se ao segundo nó com o SQL Server Management Studio, como
AGNode2
.Em uma janela Nova consulta, execute a seguinte instrução Transact-SQL (T-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 HADR e use o certificado para autenticação executando esta instrução Transact-SQL (T-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 ir para o local do arquivo onde está o certificado, como
c:\certs
.Faça manualmente uma cópia do certificado, como
AGNode2Cert.crt
, do segundo nó, e transfira-o para o mesmo local no primeiro nó.
Se houver outros nós no cluster, repita essas etapas lá também, modificando os respetivos nomes de certificado.
Criar logins
A autenticação de certificado é usada para sincronizar dados entre nós. Para permitir isso, crie um logon para o outro nó, crie um usuário para o logon, crie um certificado para o logon para usar o certificado de backup e, em seguida, conceda conexão no ponto de extremidade de espelhamento.
Para fazer isso, primeiro execute a seguinte consulta Transact-SQL (T-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 Transact-SQL (T-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 lá também, modificando o respetivo certificado e nomes de usuário.
Configurar um grupo de disponibilidade
Nesta etapa, configure seu grupo de disponibilidade e adicione seus bancos de dados a ele. Não crie um ouvinte neste momento. Se você não estiver familiarizado com as etapas, consulte o tutorial do grupo de disponibilidade. Certifique-se de iniciar um failover e failback para verificar se tudo está funcionando como deveria.
Nota
Se houver uma falha durante o processo de sincronização, talvez seja necessário conceder NT AUTHORITY\SYSTEM
direitos sysadmin 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, você deve usar o PowerShell para criar um ponto de acesso de cliente ou o nome de rede para seu 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óximos passos
Depois que o grupo de disponibilidade for implantado, considere otimizar as configurações de HADR para o SQL Server em VMs do Azure.
Para saber mais, consulte: