Sintomas
Suponha que você tenha configurado a disponibilidade do AlwaysOn Grupo usando o pacemaker para SQL Server 2017 no Linux. Durante a conexão com o SQL Server, você percebe que um grupo de disponibilidade intermitente o failover ocorre quando a conexão auxiliar AG expira.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Resolução
Esse problema foi corrigido na seguinte atualização cumulativa do SQL Server:
Sobre atualizações cumulativas do SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Informações adicionais
Suponha que você tenha configurado o grupo de disponibilidade (AG) usando o pacemaker para SQL Server 2017 no Linux. Considere que o agente de recursosauxiliar do pacemaker AG está usando o seguinte arquivo de configuração de cluster como realçado. AG Helper está usando o intervalo de conexão de 10 segundos, o tempo limite de conexão de 30 segundos e o tempo limite de monitor de 90 segundos para verificação de integridade.
<a identificação mestra = "ha_cluster-Master" >
<primitiva Class = "OCF" ID = "ha_cluster" Provider = "MSSQL" Type = "AG" >
<instance_attributes id="ha_cluster-instance_attributes">
<nvpair ID = "ha_cluster-instance_attributes-ha_name" Name = "ha_name" value = "TEST_AG"/>
<nvpair ID = "ha_cluster-instance_attributes-trace_ra" Name = "trace_ra" value = "1"/>
</instance_attributes>
<operations>
<op ID = "ha_cluster-rebaixar-Interval-0s" Interval = "0s" Name = "rebaixar" Timeout = "300"/>
<op ID = "ha_cluster-monitor-Interval-60s" Interval = "60s" Name = "Monitor" Timeout = "100"/>
<op ID = "ha_cluster-monitor-Interval-11" Interval = "10" Name = "Monitor" role = "Master" Timeout = "90"/>
<op ID = "ha_cluster-monitor-Interval-12" Interval = "12" Name = "Monitor" role = "Slave" Timeout = "60"/>
<op ID = "ha_cluster-Notify-Interval-0s" Interval = "0s" Name = "Notify" Timeout = "60"/>
<op ID = "ha_cluster-Promote-Interval-0s" Interval = "0s" Name = "Promote" Timeout = "60"/>
<op ID = "ha_cluster-Start-Interval-0s" Interval = "0s" Name = "Start" Timeout = "60"/>
<op ID = "ha_cluster-Stop-Interval-0s" Interval = "0s" Name = "Stop" Timeout = "300"/>
</operations>
<meta_attributes id="ha_cluster-meta_attributes">
<nvpair ID = "ha_cluster-meta_attributes-timeout" Name = "Timeout" value = "30s"/>
<nvpair ID = "ha_cluster-meta_attributes-Failure-timeout" Name = "Failure-timeout" value = "60s"/>
</meta_attributes>
</primitive>
<meta_attributes id="ha_cluster-master-meta_attributes">
<nvpair ID = "ha_cluster-Master-meta_attributes-notificar" Name = "Notify" value = "true"/>
<nvpair ID = "ha_cluster-Master-meta_attributes-trace_ra" Name = "trace_ra" value = "1"/>
</meta_attributes>
</master>
Antes da atualização cumulativa 21 (CU21) para SQL Server 2017, se a conexão de verificação de integridade da AG expirar durante a conexão com o SQL Server, uma ação de rebaixamento foi iniciada à medida do failover da AG para o nó secundário.
Da CU21 em diante, se ocorrer um tempo limite de conexão, o agente de recurso de auxiliar AG honrará o tempo limite de monitor de 90 segundos e tentará mais duas conexões. Se todas as três tentativas de conexão falharem, o agente de recurso de auxiliar AG declarará o SQL Server como não responsiva e iniciará a ação de rebaixamento que leva ao failover do grupo de disponibilidade para o nó secundário.
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.