locked
Problemas na configuração de Mirroring c/ Witness RRS feed

  • Pergunta

  • Estou tentando configurar um mirrorin aqui mas não está dando certo recebo a mensagem de erro:
    Msg 1418, Level 16, State 1, Line 1
    The server network address "TCP://127.0.0.1:5023" 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.

    Andei pesquisando sobre este erro e vi que é bastante comum, tentei usar o nome do servidor mas também não deu certo, desativei o Firewall e o error persiste.
    Efetuei o backup/ restore with norecovery do Full e do Log.
    Tentei colocar também "localhost" e o meu IP externo mas o erro foi o mesmo.

    Abaixo as configurações que usei:
    SQL Server Ent 2008 SP1 (Nas 3 instancias)
    Cada Instância utiliza um usuário diferente para os serviços do SQL, ou seja, 3 usuarios de serviços User1,User2 e User3 para o Principal, Mirror e Witness respectivamente.
    O usuário Adminsitrador do banco é um só para as 3 instâncias e também é adm da máquina local.
    Windows 7 Professional Atualizado. (não está em um AD).
    Tudo 32Bits.

    No PRINCIPAL:
    IF EXISTS (SELECT name FROM sys.database_mirroring_endpoints WHERE name='mirroring')
      DROP ENDPOINT mirroring
    GO
    CREATE ENDPOINT mirroring
        STATE = STARTED
        AS TCP ( LISTENER_PORT = 5022 )
        FOR DATABASE_MIRRORING (ROLE=PARTNER);
    GO
    
    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    USE master
    GO
    ALTER DATABASE Muramatsu
    SET PARTNER = 'TCP://127.0.0.1:5023'
    
    Use master
    GO
    ALTER DATABASE Muramatsu
    SET WITNESS = 'TCP://127.0.0.1:5024'

    No MIRRO:
    IF EXISTS (SELECT name FROM sys.database_mirroring_endpoints WHERE name='mirroring')
      DROP ENDPOINT mirroring
    GO
    CREATE ENDPOINT mirroring
        STATE = STARTED
        AS TCP ( LISTENER_PORT = 5023 )
        FOR DATABASE_MIRRORING (ROLE=PARTNER);
    GO
    
    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    USE master
    GO
    ALTER DATABASE Muramatsu
    SET PARTNER = 'TCP://127.0.0.1:5022'

    No WITNESS:
    IF EXISTS (SELECT name FROM sys.database_mirroring_endpoints WHERE name='mirroring')
      DROP ENDPOINT mirroring
    GO
    CREATE ENDPOINT mirroring
        STATE = STARTED
        AS TCP ( LISTENER_PORT = 5024 )
        FOR DATABASE_MIRRORING (ROLE=WITNESS);
    GO


    Se alguém puder dar um Help fico grato.
    http://ricardomura.spaces.live.com
    domingo, 21 de fevereiro de 2010 17:53

Respostas

  • Ricardo,

    Voce estar conseguindo usar o comando TELNET especificando a porta que você configurou nos ENDPOINTS ? Para validar a conectividade entre as instancias e se as portas estão liberadas.Exemplo: Telnet 127.0.0.1 5022

    Você assegurou que os demais usuários,estão com permissão correta pra conectar nos Endpoints de cada instancia?

    Escrevi um artigo bem completo sobre o assunto,se for o caso de uma olhada.
    http://felipedba.blogspot.com/2009/12/implementando-database-mirror.html

    Até mais.
    Felipe Santana - MCP
    segunda-feira, 22 de fevereiro de 2010 11:41

Todas as Respostas

  • Ricardo,

    Voce estar conseguindo usar o comando TELNET especificando a porta que você configurou nos ENDPOINTS ? Para validar a conectividade entre as instancias e se as portas estão liberadas.Exemplo: Telnet 127.0.0.1 5022

    Você assegurou que os demais usuários,estão com permissão correta pra conectar nos Endpoints de cada instancia?

    Escrevi um artigo bem completo sobre o assunto,se for o caso de uma olhada.
    http://felipedba.blogspot.com/2009/12/implementando-database-mirror.html

    Até mais.
    Felipe Santana - MCP
    segunda-feira, 22 de fevereiro de 2010 11:41
  • Sim, o Telnet funciona nas 3 portas (5022, 5023 e 5024).

    Att,
    Ricardo Muramatsu

    http://ricardomura.spaces.live.com
    segunda-feira, 22 de fevereiro de 2010 12:42
  • Ricardo,

    Você testou o telnet em ambos os servidores?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 23 de fevereiro de 2010 13:26
    Moderador
  • Junior, é um único servidor com 3 instâncias, e as 3 portas estão funcionando e aceitando conexão via telnet.

    http://ricardomura.spaces.live.com
    terça-feira, 23 de fevereiro de 2010 15:17
  • Ricardo,

    Certo, estou achando que esta ocorrendo concorrência em acesso as estas portas sendo assim uma das instância esta acabando bloqueando a comunicação.

    Não posso afirmar!!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    terça-feira, 23 de fevereiro de 2010 16:51
    Moderador
  • Trocar os números das portas pode ser um bom teste?

    Por exemplo:
    Principal: 1478
    Mirror: 1479
    Witness: 1480

    http://ricardomura.spaces.live.com
    terça-feira, 23 de fevereiro de 2010 20:27
  • Ricardo,

    Pode ser sim!!!!
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quarta-feira, 24 de fevereiro de 2010 11:41
    Moderador
  • É Junior, num foi não cara.

    Mais alguma idéia?
    http://ricardomura.spaces.live.com
    quarta-feira, 24 de fevereiro de 2010 23:36
  • Ricardo,

    Quais protocolos estão habilitados para estas instâncias SQL Server?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 25 de fevereiro de 2010 12:29
    Moderador
  • Shared Memory
    Named Pipes
    TCP (1433 Principal , 1434 Mirror , 1435 Witness) (Habilitado e Ativado IP Adress em todas as instâncias para o IP 127.0.0.1)
    *Tentei sem habilitar o IPAdress e usando porta dinâmica também.

    Att,
    Ricardo Muramatsu
    http://ricardomura.spaces.live.com
    quinta-feira, 25 de fevereiro de 2010 14:17
  • Ricardo,

    Você possui o serviço de DNS rodando internamente em sua rede?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    quinta-feira, 25 de fevereiro de 2010 18:19
    Moderador
  • Não, o pc é um Windows 7.
    Quanto a rede, minha placa de rede não está conectada a nada. Acesso a internet via TimWeb (usb).
    IPV6 e IPV4 ativado.

    As 3 instâncias estão funcionando, pelo menos via SSMS vai na boa colocando HOSTNAME\INSTANCIA
    Os usuários de serviço das 3 instâncias (Principal, Mirror, Witness) são diferentes (SQLServerServices, SQLServerServices1 e SQLServerServices2 respectivamente).
    Meu usuário Windows local é Admin nas 3 instâncias e no Windows.

    Att,
    Ricardo Muramatsu

    http://ricardomura.spaces.live.com
    sexta-feira, 26 de fevereiro de 2010 11:17
  • Ricardo,

    Tente fazer o seguinte, não configure o servidor Witness, por padrão este servidor tem que ser outro máquina, configure somente o database mirroring e o partners.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    sexta-feira, 26 de fevereiro de 2010 12:23
    Moderador
  • É mesmo assim não deu não Junior.

    Bizarro. ^^

    Att,
    Ricardo Muramatus

    http://ricardomura.spaces.live.com
    sexta-feira, 26 de fevereiro de 2010 23:16
  • Ricardo,

    Que loucura estou pensando em alguma outra solução.
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 1 de março de 2010 13:07
    Moderador