Estou tentando configurar o espelhamento do SQL Server 2008 R2, mas estou travando com este erro:
Ocorreu um erro ao iniciar o espelhamento.
Informações Adicionais:
Falha na alteração do banco de dados 'MyDB'. (Microsoft.SqlServer.Smo)Ocorreu uma exceção durante a execução de uma instrução ou lote Transact-SQL.
(Microsoft.SqlServer.ConnectionInfo)O endereço de rede do servidor "TCP://10.39.113.135:5022" não pode ser alcançado ou não existe. Verifique o nome do endereço de rede e se as portas dos endpoints locais e remotos estão operacionais. (Microsoft SQL Server, erro: 1418)
- Posso fazer ping em 10.39.113.135 (o espelho) do servidor principal.
- Eu posso me conectar com telnet para 10.39.113.135:5022 do servidor principal
- netstat -n mostra que não há conexões em 5022, o que significa que não está sendo usado por mais nada
- A etapa de configuração dos pontos de extremidade é executada corretamente e confirmei que ambas as extremidades estão configuradas corretamente seguindo estas etapas: http://msdn.microsoft.com/en-us/library/ms189127.aspx
- Eu preparei o banco de dados de backup que recuperei no servidor espelho com a cláusula NO RECOVERY
Então, alguma ideia de por que estou recebendo o erro 1418?
Aqui estão as informações solicitadas por Mark Storey-Smith:
Diretor:
name endpoint_id principal_id protocol protocol_desc local_net_address local_tcp_port type type_desc state state_desc is_admin_endpoint
-------------------------------------------------------------------------------------------------------------------------------- ----------- ------------ -------- ------------------------------------------------------------ ------------------------------------------------ -------------- ---- ------------------------------------------------------------ ----- ------------------------------------------------------------ -----------------
Dedicated Admin Connection 1 1 2 TCP NULL NULL 2 TSQL 0 STARTED 1
Mirroring 65536 1 2 TCP NULL NULL 4 DATABASE_MIRRORING 0 STARTED 0
TSQL Default TCP 4 1 2 TCP 10.55.31.223 1433 2 TSQL 0 STARTED 0
TSQL Default VIA 5 1 5 VIA NULL NULL 2 TSQL 0 STARTED 0
TSQL Local Machine 2 1 4 SHARED_MEMORY NULL NULL 2 TSQL 0 STARTED 0
TSQL Named Pipes 3 1 3 NAMED_PIPES NULL NULL 2 TSQL 0 STARTED 0
(6 row(s) affected)
Espelho:
name endpoint_id principal_id protocol protocol_desc local_net_address local_tcp_port type type_desc state state_desc is_admin_endpoint
-------------------------------------------------------------------------------------------------------------------------------- ----------- ------------ -------- ------------------------------------------------------------ ------------------------------------------------ -------------- ---- ------------------------------------------------------------ ----- ------------------------------------------------------------ -----------------
Dedicated Admin Connection 1 1 2 TCP NULL NULL 2 TSQL 0 STARTED 1
Mirroring 65536 1 2 TCP NULL NULL 4 DATABASE_MIRRORING 0 STARTED 0
TSQL Default TCP 4 1 2 TCP 10.39.113.135 1433 2 TSQL 0 STARTED 0
TSQL Default VIA 5 1 5 VIA NULL NULL 2 TSQL 0 STARTED 0
TSQL Local Machine 2 1 4 SHARED_MEMORY NULL NULL 2 TSQL 0 STARTED 0
TSQL Named Pipes 3 1 3 NAMED_PIPES NULL NULL 2 TSQL 0 STARTED 0
(6 row(s) affected)
Você verificou a conexão do espelho ao principal com telnet? Você restaurou um backup de log no espelho?
Postei algumas consultas de diagnóstico em uma pergunta anterior sobre espelhamento . Execute-os e atualize sua resposta com a saída.
Em cada instância, verifique o endpoint de espelhamento e verifique se ambos estão sendo executados em 5022 (script para ver facilmente, não sei o DMV a ser usado) e verifique se há uma regra de firewall baseada em host de entrada e saída (win2k8 ativa isso por padrão ) no principal e no espelho. Se os 2 computadores estiverem em domínios diferentes, você precisará usar autenticação baseada em certificado para espelhamento. Certifique-se de fazer um backup completo e um backup de log para restaurar no espelho, ambos com a opção NORECOVERY.
Acontece que eu estava tentando fazer espelhamento de banco de dados assíncrono no Microsoft SQL Server 2008 R2 Standard Edition, que não oferece suporte a esse recurso.
Para usar o espelhamento assíncrono, eu teria que usar o Enterprise Edition.
Eu gostaria que o banco de dados tivesse me dado um erro mais pertinente como "Atualize para a Enterprise Edition". Ah bem.