Jogando com a configuração do AG Eu tenho o WSFC instalado e configurado com dois nós em um grupo de disponibilidade chamado DevClusterOnline. Os dois nós (DEV-AWEB5 primário e DEV-AWEB6 secundário) estão executando o Windows Server 2008 R2.
Se eu verificar a integridade do meu AG, recebo o seguinte:
A execução da consulta abaixo retornará este conjunto de resultados:
select
ar.replica_server_name,
availability_group_name = ag.name,
ar.availability_mode_desc,
ar.failover_mode_desc
from sys.availability_replicas ar
inner join sys.availability_groups ag
on ar.group_id = ag.group_id
order by availability_group_name, replica_server_name;
Se eu desconectar o DEV-AWEB5, não consigo conectar-me ao Ouvinte de Grupo (DevListener), mas posso fazer o ping e ele responderá ao meu ping. A réplica - DEV-AWEB6 entra em um estado RESOLVING e meu DB está inacessível. No entanto, posso entrar manualmente no Management Studio e definir o Failover como DEV-AWEB6 e, em seguida, voltar a funcionar e o DevListener aceitará novamente as conexões.
Considerando que esses fatos confirmam que o failover realmente funciona, que eu sincronizei confirmações e configurei o failover automático, não tenho idéia do que está apresentando mau funcionamento em minha instalação.
Quando eu desconecto o DEV-AWEB5, espero que minha réplica retenha a conexão e, portanto, o DevListener também. Espero que o failover automático permita que eu me conecte ao ouvinte da AG de forma transparente. Da perspectiva do usuário final, usando um sistema da Web, não deve ser notado que um dos servidores de banco de dados está inoperante.
Estou preso aqui, alguém pode me esclarecer o que estou fazendo de errado?
Respostas:
Defina "desconectar", se desejar. Meu palpite é que você manteve a caixa aberta, mas derrubou o SQL Server.
Isso ocorre porque o ouvinte é apenas um nome de rede virtual (VNN) no grupo de recursos de cluster do WSFC para o grupo de disponibilidade representado. Seu nó DEV_AWEB5 ainda possui o grupo de recursos de cluster, mas é apenas o recurso de cluster AG que provavelmente está em um estado com falha. O VNN ainda deve estar online (comportamento esperado). Ele está simplesmente apontando para qualquer nó que possua esse grupo de recursos (neste caso, DEV-AWEB5). De fato, se você tivesse o PowerShell Remoting ativado, e executasse o seguinte:
Da mesma forma, se você puder fazer o RDP no DEV-AWEB5 (desde que você tenha capacidade e acessibilidade etc.), poderá fazer o RDP usando o nome do ouvinte (
mstsc /v:YourListenerName
). É apenas um VNN.O retorno disso seria o nome do computador do seu nó proprietário.
Por todos os seus sintomas, eu apostaria que você atingiu seu limite de failover. O limite de failover determina quantas vezes o cluster tentará fazer failover do seu grupo de recursos em um período especificado. O padrão desses valores máx. Failovers n - 1 (em que n é a contagem de nós) em um período de 6 horas . Você pode ver isso através do seguinte comando do WSFC PowerShell:
Isso apenas fornece as configurações (que você pode modificar, se quiser, é claro).
A melhor maneira de provar que esse é o seu caso, você precisaria gerar o log do cluster (os logs de eventos do sistema só entram em detalhes na medida em que "falhou" ou algo parecido).
Por padrão, isso é colocado na pasta "C: \ Windows \ Cluster \ Reports" e o arquivo é chamado "Cluster.log".
Se você abrir esse log de cluster, poderá encontrar a seguinte cadeia de caracteres, indicando exatamente o que aconteceu e por que aconteceu:
A mensagem acima é simplesmente o WSFC informando que não ocorrerá failover no seu grupo porque aconteceu muito (você atingiu o limite).
Por que isso acontece? Simplesmente para impedir que o efeito Ping-Pong dos recursos do cluster seja alternado com muita frequência entre os nós.
Embora seja comum atingir esses limites nos testes de failover, na produção, normalmente indica um problema que deve ser investigado.
fonte
Adicionar MSSQL como um recurso de serviço genérico não é a resposta.
Isso apenas colocará o Cluster Manager no serviço do SQL Server, OK, sim, ele fará failover automaticamente, mas você notará no SQL Server Configuration Manager que seus serviços estão agora definidos como "Manual", indicando que o Cluster Manager está agora no controle do seu serviço do servidor SQL.
Você está colocando o Cluster Manager no comando de um aplicativo não clusterizado.
Isso terminará em lágrimas.
A abordagem correta para configurar corretamente os grupos de disponibilidade do SQL Server de acordo com a documentação da MS.
Além disso, verifique se você não está excedendo os parâmetros de failover conforme definido na guia Cluster Manager> Funções> guia Failover.
Se você estiver excedendo esses limites, o cluster não fará o failover de seus recursos e um erro será postado no log de eventos do aplicativo.
fonte