Eu tenho um cluster SQL de dois nós (2008 R2).
Alguns dos bancos de dados dentro dessa instância SQL são espelhados para outro servidor em um site remoto, usando a segurança alta com failover automático. O valor de tempo limite da conexão de espelhamento para esses bancos de dados é definido como 90 segundos.
Quando eu movo o SQL de um nó no cluster para outro nó, usando a opção do aplicativo Failover Cluster Manager de "Mover este serviço ou aplicativo para outro nó", os bancos de dados que são espelhados sofrem failover instantaneamente para o espelho.
Este é um comportamento indesejável. Meu motivo para definir o valor de tempo limite da conexão de espelhamento é que eu só quero fazer failover para o espelho do banco de dados se o cluster falhar completamente e não houver nós funcionando.
Existe alguma maneira de conseguir isso? Parece que deveria ser possível, caso contrário, o conceito de misturar clustering e espelhamento de banco de dados de failover automático seria impraticável, pois cada failover de nó dentro do cluster acionaria um failover de espelho.
Obrigado.
Uma maneira de evitar o failover do espelho é:
ALTER DATABASE XYZ SET PARTNER SUSPEND
ALTER DATABASE XYZ SET PARTNER RESUME
A instância está falhando no espelho porque a testemunha e a secundária não podem mais ver a instância primária.
Parece que você está tentando recriar os Grupos de Disponibilidade do SQL Server 2012 combinando espelhamento e clustering.
O espelhamento de banco de dados expira apenas nos chamados erros "suaves". Erros graves, como um failover de cluster, são relatados à sessão de espelhamento imediatamente, causando o failover imediato. Leia mais em http://msdn.microsoft.com/en-us/library/ms190913.aspx
Possíveis causas de erros físicos incluem (mas não estão limitadas a) as seguintes condições:
As condições que podem causar tempos limite de espelhamento incluem (mas não estão limitadas a) as seguintes:
Para obter mais informações sobre espelhamento e possíveis problemas, você pode querer ver minha pergunta O que pode fazer com que uma sessão de espelhamento atinja o tempo limite e depois o failover? SQLServer 2005
Isso está acontecendo porque o servidor está respondendo, mas o endpoint de espelhamento está inativo. O parceiro e a testemunha obtêm uma resposta do sistema operacional informando que a porta em que o endpoint está fechado e inicia imediatamente o failover. O tempo limite se aplica quando nenhuma resposta é recebida do host, em vez de "a porta que você está procurando não está mais ouvindo", resposta.
Para contornar isso, você precisará suspender a sessão de espelhamento como Max sugeriu ou, se também estiver preocupado com failovers de cluster não planejados, desabilite o failover automático conforme sugerido pelo swasheck e falhe manualmente o espelhamento quando necessário.