none
REPLICAÇÃO PEER-TO-PEER, URGENTE!!!! RRS feed

  • Pergunta

  • Considerando o seguinte cenário:

    1 - Configuramos uma Replicação Ponto a Ponto entre dois Servidores;

    2 - O Servivor 1 caiu e a aplicação agora está apontando para o servidor 2;

    3 - Dois dias depois o servidor 1 voltou.

    Pergunta:

    Precisamos que o SQL Server do Servidor 1 fique com o status de "Read Only
    ", até que a replicação do servidor 2 para o 1 seja concluída , pois a
    aplicação não poderá acessar o servidor 1 até que os dados sejam
    atualizados.

    É possível realizar tal configuração?

    Agradeço desde ja!!
    quinta-feira, 12 de março de 2009 20:19

Respostas

  • Olá,

    Desconheço a opção read-only. Caso você queira saber se os dados foram sincronizados, basta executar o Job da replicação e quando ele terminar as bases serão sincronizadas( desde que nenhuma alteração seja realizada durante a execução do JOB ).

    Uma opção para comparar dados de tabelas seria usar o utilitário tablediff:

     
     
    --COMPARAR LINHAS  
     
    cd\  
    md diff  
    cd arquivos de programas  
    cd microsoft sql server  
    cd 90  
    cd com  
    copy tablediff.exe c:\diff  
     
    cd diff  
    tablediff/?  
     
    tablediff -sourceserver servidor -sourcedatabase banco -sourcetable tabela -sourceuser usuario - sourcepassword senha -destinationserver servidor -destinationdatabase banco   
    -destinationtable -tabela -f c:\diff\script.sql  
     
     
     
     

    Abraços
    Demétrio Silva
    • Marcado como Resposta Gabriel Marquez segunda-feira, 16 de março de 2009 19:36
    sexta-feira, 13 de março de 2009 13:05
  • Olá,

    Esta presente no 2005 sim.

    Por padrão fica na pasta :

    C:\Arquivos de programas\Microsoft SQL Server\90\COM

    Pesquise por tablediff que você vai encontrar.

    Não existe procedure que faça isso não. A não ser que alguem tenha criado, mas no SQL Server  não existe.

    Abraços
    Demétrio Silva
    • Sugerido como Resposta Demétrio Silva segunda-feira, 16 de março de 2009 13:33
    • Marcado como Resposta Gabriel Marquez segunda-feira, 16 de março de 2009 19:35
    sexta-feira, 13 de março de 2009 17:01

Todas as Respostas

  • Olá,

    Cara desconheço algo do tipo. Qual a necessidade disso?

    Abraços


    Demétrio Silva
    quinta-feira, 12 de março de 2009 20:46
  • Olá Demétrio!

    É o seguinte!
    Este é um sistema crítica que funciona 24 horas por dia!

    Como informado no cenário, eu não poderia deixar a aplicação voltar para o server 1 antes que todos os dados cadastrados no server 2 estejam lá!

    Me falaram que é possível e que é uma configuração simples, que quando o sql volta é possível deixá-lo em read-only até que o sincronismo seja realizado...

    Bom não sei!
    Se algume puder me ajudar agradeço, é um assunto muito urgente na empresa!

    Obrigado!!
    quinta-feira, 12 de março de 2009 23:01
  •  Melhor!
    Tem alguma maneira, alguma stored que me retorne um quando os dados dos dois bancos estão identicos? alguma stored de validação da replicação que me de um retorno, algo do tipo?
    sexta-feira, 13 de março de 2009 02:22
  • Olá,

    Desconheço a opção read-only. Caso você queira saber se os dados foram sincronizados, basta executar o Job da replicação e quando ele terminar as bases serão sincronizadas( desde que nenhuma alteração seja realizada durante a execução do JOB ).

    Uma opção para comparar dados de tabelas seria usar o utilitário tablediff:

     
     
    --COMPARAR LINHAS  
     
    cd\  
    md diff  
    cd arquivos de programas  
    cd microsoft sql server  
    cd 90  
    cd com  
    copy tablediff.exe c:\diff  
     
    cd diff  
    tablediff/?  
     
    tablediff -sourceserver servidor -sourcedatabase banco -sourcetable tabela -sourceuser usuario - sourcepassword senha -destinationserver servidor -destinationdatabase banco   
    -destinationtable -tabela -f c:\diff\script.sql  
     
     
     
     

    Abraços
    Demétrio Silva
    • Marcado como Resposta Gabriel Marquez segunda-feira, 16 de março de 2009 19:36
    sexta-feira, 13 de março de 2009 13:05
  • Boa tarde Demétrio!

    Não achei esse utilitário tablediff nas pastas do sql!

    Eu uso o 2005, ele está presente somente no 2008???

    Qualquer coisa eu posso baixá-lo da internet e executá-lo normalmente?

    Obrigado!

    sexta-feira, 13 de março de 2009 16:52
  • E sem querer ser muito chato....(eheh)

    Será que existem uma procedure já pronta no sql que realiza esta compração???
    sexta-feira, 13 de março de 2009 16:54
  • Olá,

    Esta presente no 2005 sim.

    Por padrão fica na pasta :

    C:\Arquivos de programas\Microsoft SQL Server\90\COM

    Pesquise por tablediff que você vai encontrar.

    Não existe procedure que faça isso não. A não ser que alguem tenha criado, mas no SQL Server  não existe.

    Abraços
    Demétrio Silva
    • Sugerido como Resposta Demétrio Silva segunda-feira, 16 de março de 2009 13:33
    • Marcado como Resposta Gabriel Marquez segunda-feira, 16 de março de 2009 19:35
    sexta-feira, 13 de março de 2009 17:01
  • Olá Demétrio!

    Obrigado pela atenção!

    Então o TABLEDIFF não está presente nesta pasta que vc falou! (e olha que aqui é tudo original)
    Mas qualquer coisa baixo ele na internet!

    Me falaram de uma stored que faz uma validação de contagem de linhas de todas as tabelas, achei interessante também.

    Bom é isso,
    Obrigado!


    ( GABRIEL MARQUEZ o correto não seria EU marcar como RESPOSTA (ao invez de vc),  assim podendo expressar minha avaliação de utilidade sobre as respostas dadas pelos nossos amigos? - Não entenda como ofensa!! )
    segunda-feira, 23 de março de 2009 14:53