- Banco com recovery model Full
- Restaurei o backup na instância que iria hospedar o espelhamento (Full backup + transaction log backups) e deixei o banco em recovery (WITH NORECOVERY)
- Como as duas máquinas estavam no mesmo domínio, apenas segui o wizard para estabelecer o espelhamento
Tudo certo e, ao final, após decidir iniciar o espelhamento (Start Mirroring), recebo a seguinte mensagem:
Bom, imediatamente, chequei como estava o firewall do Windows e vi que as portas que eu estava utilizando estavam ambas liberadas nos dois servidores. E ativas! Inclusive, consegui dar um telnet nelas (telnet servidor02.dominio.local 5022). O que mais poderia ser?The server network address "TCP://servidor02.dominio.local:5022" can not be reached or does not exist. Check the network address name and that the ports for the local and remote endpoints are operational. (Microsoft SQL Server, Error: 1418)
A parte interessante: as duas instâncias estavam usando a conta NETWORK SERVICE para executar o serviço SQL Server, e não uma conta de domínio (ou local) exclusiva para esse fim. Como eram duas instâncias não configuradas por mim (normalmente eu crio uma conta para o serviço do SQL Server e habilito dois recursos que eu gosto muito: "Instant File Initialization" e permitir "Lock Pages in Memory") e não tinha janela para efetuar essa alteração, iniciei o serviço "as is".
Como resolver esse problema? Criei um login com as contas de computador do domínio e dei permissão CONNECT em ambas máquinas. Veja como ficou:
Na instância principal:
CREATE LOGIN [DOMINIO\SERVIDOR02$] FROM WINDOWS
GO
GRANT CONNECT ON endpoint::[Nome-do-Mirror-Endpoint] to [DOMINIO\SERVIDOR02$]
GO
Onde,
SERVIDOR02 é o nome do servidor onde está a instância que será o espelho;
Nome-do-Mirror-Endpoint é o nome do endpoint criado quando você configurou o espelhamento; pode ser obtido pela consulta SELECT name FROM sys.database_mirroring_endpoints.
Na instância espelho:
CREATE LOGIN [DOMINIO\SERVIDOR01$] FROM WINDOWS
GO
GRANT CONNECT ON endpoint::[Nome-do-Mirror-Endpoint] to [DOMINIO\SERVIDOR01$]
GO
Onde,
SERVIDOR01 é o nome do servidor onde está a instância principal;
SERVIDOR01 é o nome do servidor onde está a instância principal;
Após isso, iniciei o espelhamento e tudo ficou funcionando!
2 comentários:
Cara muito obrigado por compartilhar seu conhecimento, o meu só dá esse erro, estou usando duas instâncias e não dois servidores. Vou fazendo conforme o Wizard e quando vou iniciar, aparece essa mensagem de erro.
Vou tentar fazer esse procedimento que você está ensinando, acho que dessa vez vai, já não sei mais o que fazer.
Espero que esse procedimento ajude.
Caso queira, compartilhe conosco se resolveu ou o que foi necessário para solucionar.
Um abraço!
Postar um comentário