Para onde os dados vão durante um failover de espelhamento de SQL?

2

Estou prestes a configurar um espelho SQL, mas há uma coisa que ainda não consegui resolver. Se eu estiver espelhando o DBA (principal) para DBB (espelho) e o DBA ficar off-line, ele alternará automaticamente para o DBB. Mas, até onde eu entendi, qualquer atualização que ocorra no DBB não aparecerá no DBA ... então, quando o DBA voltar a ficar online e se tornar ativo novamente, todas as atualizações durante a interrupção serão perdidas? Está certo ou perdi alguma coisa?

Obrigado! Paul

    
por Paul 23.04.2013 / 11:23

2 respostas

1

Existem certas situações em que algo acontecerá ao servidor principal e ele não poderá sincronizar sem restabelecer as sessões de espelhamento. Mas se você estiver no modo de alta segurança e tiver uma configuração de servidor testemunha, será possível que o DBA seja pego pelo DBB.

Isso é explicado um pouco mais em livros on-line na seção "Transferência de funções", em Como funciona o failover automático "

  1. Se o servidor principal ainda estiver em execução, ele mudará o estado do banco de dados principal para DISCONNECTED e desconectará todos os clientes do banco de dados principal.

  2. Os servidores testemunha e espelho registram que o servidor principal não está disponível.

  3. Se algum log estiver aguardando na fila de refazer, o servidor espelhado concluirá o avanço do banco de dados espelhado.

  4. O antigo banco de dados de espelhamento se move on-line como o novo banco de dados principal, e a recuperação limpa todas as transações não confirmadas, revertendo-as o mais rápido possível. Os bloqueios isolam essas transações.

  5. Quando o servidor principal anterior reingressar à sessão, ele reconhece que seu parceiro de failover agora possui a função principal. O servidor principal anterior assume o papel de espelho, tornando seu banco de dados o banco de dados espelho. O novo servidor espelho sincroniza o novo banco de dados espelho com o banco de dados principal o mais rápido possível. Assim que o novo servidor espelho ressincronizar os bancos de dados, o failover é novamente possível, mas na direção inversa.

Portanto, na sua situação, se / quando o DBA voltar a ficar on-line, ele eventualmente será afetado pelo DBB, mas o tempo de espera dependerá da velocidade do sistema, da carga de trabalho recente e da quantidade de log na fila de refazer. .

    
por 24.04.2013 / 01:40
3

O que você perdeu é que os programadores MS não são idiotas totais. Quando o DBA volta a funcionar, ele sabe que está desatualizado e não responderá até que tenha recebido os dados do B. A não tem prioridade "real", especialmente com o principal disponível. B estará lá e saberá que tem uma nova autorização.

Se A continuasse respondendo e os dados em B fossem perdidos, o recurso seria totalmente inútil.

    
por 23.04.2013 / 11:32