Simptome
Să presupunem că ați configurat grupul de disponibilitate AlwaysOn utilizând Pacemaker pentru SQL Server 2017 sau 2019 pe Linux. În timpul conectării la SQL Server, observați că reluarea în caz de nereușită intermitentă a grupului de disponibilitate are loc atunci când conexiunea de ajutor AG expiră.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Rezolvare
Această problemă este remediată în următoarele actualizări cumulative pentru SQL Server:
Despre actualizările cumulative pentru SQL Server:
Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse cu actualizarea cumulativă anterioară. Consultați cele mai recente actualizări cumulative pentru SQL Server:
- Cea mai recentă actualizare cumulativă pentru SQL Server 2019
- Cea mai recentă actualizare cumulativă pentru SQL Server 2017
Mai multe informații
Să presupunem că ați configurat Grupul de disponibilitate (AG) utilizând Pacemaker pentru SQL Server 2017 sau 2019 pe Linux. Luați în considerare faptul că agentul de resurse de ajutor AG pacemaker utilizează fișierul de configurare cluster următor, așa cum a fost evidențiat. Asistentul AG utilizează intervalul de conexiune de 10 secunde, timpul de expirare a conexiunii de 30 de secunde și timpul de expirare a monitorului de 90 de secunde pentru verificarea stării de funcționare.
<master id="ha_cluster-master">
<primitive 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>
<operațiuni>
<op id="ha_cluster-demote-interval-0s" interval="0s" name="demote" 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"/>
</operațiuni>
<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-notify" name="notify" value="true"/>
<nvpair id="ha_cluster-master-meta_attributes-trace_ra" name="trace_ra" value="1"/>
</meta_attributes>
</master>
Înainte de actualizarea cumulativă 21 (CU21) pentru SQL Server 2017, dacă conexiunea pentru verificarea stării de funcționare a grupului de afaceri expiră în timpul conectării la SQL Server, a fost inițiată o acțiune de retrogradare ce a dus la reluarea în caz de nereușită a AG la nodul secundar.
Începând cu CU21, dacă apare o expirare a conexiunii, agentul de resurse de ajutor AG va respecta timpul de expirare a monitorului de 90 de secunde și va încerca încă două conexiuni. Dacă toate cele trei încercări de conexiune nu reușesc, agentul de resurse de ajutor AG va declara SQL Server ca nerăspunzător și va porni acțiunea de retrogradare care duce la reluarea în caz de nereușită a grupului de disponibilitate la nodul secundar.
Referințe
Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.