Sdílet prostřednictvím


Konfigurace flexibilních zásad automatického převzetí služeb při selhání pro skupinu dostupnosti AlwaysOn

Platí pro:SQL Server pro Windows

Toto téma popisuje, jak nakonfigurovat flexibilní zásady převzetí služeb při selhání pro skupinu dostupnosti AlwaysOn pomocí Transact-SQL nebo PowerShellu na SQL Serveru. Flexibilní politika převzetí služeb při selhání umožňuje detailní kontrolu nad podmínkami způsobujícími automatické převzetí služeb při selhání v rámci skupiny dostupnosti. Změnou podmínek selhání, které aktivují automatické převzetí služeb při selhání, a četnosti kontrol stavu můžete zvýšit nebo snížit pravděpodobnost automatického převzetí služeb při selhání a tím podpořit vaši SLA pro vysokou dostupnost.

Zásady flexibilního převzetí služeb při selhání skupiny dostupnosti jsou definovány úrovní podmínky selhání a prahem časového limitu kontroly stavu. Při zjištění, že skupina dostupnosti překročila úroveň stavu selhání nebo prahovou hodnotu časového limitu kontroly stavu, knihovna DLL prostředků skupiny dostupnosti reaguje zpět na cluster WsFC (Windows Server Failover Clustering). Cluster WSFC pak zahájí automatické přepnutí na sekundární repliku.

Poznámka:

Flexibilní zásady převzetí služeb při selhání skupiny dostupnosti nelze nakonfigurovat pomocí aplikace SQL Server Management Studio.

Omezení automatických selhání

  • Aby mohlo dojít k automatickému převzetí služeb při selhání, musí být aktuální primární replika a jedna sekundární replika nakonfigurovaná pro režim dostupnosti synchronního potvrzení s automatickým převzetím služeb při selhání a sekundární replika musí být synchronizovaná s primární replikou.

  • SQL Server 2019 (15.x) zvýšil maximální počet synchronních replik na 5, z 3 v SQL Serveru 2017 (14.x). Tuto skupinu pěti replik můžete v rámci skupiny nakonfigurovat tak, aby měla automatické převzetí služeb při selhání. Existuje jedna primární replika a čtyři synchronní sekundární repliky.

  • Pokud skupina dostupnosti překročí prahovou hodnotu selhání WSFC, cluster WSFC se nepokusí o automatické převzetí služeb při selhání této skupiny. Kromě toho skupina prostředků WSFC skupiny dostupnosti zůstává ve stavu selhání, dokud správce clusteru ručně neuvede selhanou skupinu prostředků do režimu online nebo správce databáze neprovede ruční převzetí služeb při selhání skupiny dostupnosti. Prahová hodnota selhání WSFC je definována jako maximální počet selhání podporovaných pro skupinu dostupnosti během daného časového období. Výchozí časové období je šest hodin a výchozí hodnota maximálního počtu selhání během tohoto období je n-1, kde n je počet uzlů WSFC. Pokud chcete změnit prahové hodnoty selhání pro danou skupinu dostupnosti, použijte konzolu Správce převzetí služeb při selhání WSFC.

Požadavky

  • Musíte být připojeni k instanci serveru, která je hostitelem primární repliky.

Povolení

Úkol Povolení
Konfigurace flexibilních zásad převzetí služeb při selhání pro novou skupinu dostupnosti Vyžaduje členství v pevné roli serveru správce systému a buď oprávnění k vytvoření SKUPINY DOSTUPNOSTI, oprávnění ke změně jakékoli SKUPINY DOSTUPNOSTI nebo oprávnění ke správě SERVERU.
Úprava politiky existující skupiny dostupnosti Vyžaduje oprávnění ALTER AVAILABILITY GROUP pro skupinu dostupnosti, oprávnění CONTROL AVAILABILITY GROUP, oprávnění ALTER ANY AVAILABILITY GROUP nebo oprávnění CONTROL SERVER.

prahová hodnota časového limitu Health-Check

Knihovna DLL prostředků WSFC skupiny dostupnosti provádí kontrolu stavu primární repliky voláním sp_server_diagnostics uložené procedury v instanci SYSTÉMU SQL Server, která je hostitelem primární repliky. sp_server_diagnostics vrátí výsledky v intervalu, který se rovná 1/3 prahové hodnotě časového limitu kontroly stavu pro skupinu dostupnosti. Výchozí prahová hodnota časového limitu kontroly stavu je 30 sekund, což způsobí, že se sp_server_diagnostics vrátí v 10sekundovém intervalu. Pokud je sp_server_diagnostics pomalý nebo nevydává žádné informace, knihovna DLL prostředků počká na úplný interval prahové hodnoty pro časový limit kontroly stavu, než určí, že hlavní replika nereaguje. Pokud primární replika nereaguje, zahájí se automatické převzetí služeb při selhání, pokud je aktuálně podporováno.

Důležité

sp_server_diagnostics neprovádí kontroly stavu na úrovni databáze.

úroveň Failure-Condition

Zda diagnostická data a zdravotní informace vrácené pomocí sp_server_diagnostics vyžadují automatické převzetí služeb při selhání, závisí na úrovni podmínek selhání skupiny dostupnosti. Úroveň podmínky selhání určuje, jaké podmínky selhání aktivují automatické převzetí při selhání. Existuje pět úrovní stavu selhání, které jsou v rozsahu od nejméně omezující (úroveň jedna) po nejvíce omezující (úroveň pět). Daná úroveň zahrnuje méně omezující úrovně. Nejtužší úroveň pět tedy zahrnuje čtyři méně omezující podmínky a tak dále.

Důležité

Poškozené databáze a podezřelé databáze nebývají odhaleny na žádné úrovni poruchového stavu. Databáze, která je poškozená nebo podezřelá (ať už kvůli selhání hardwaru, poškození dat nebo jinému problému), proto nikdy neaktivuje automatické převzetí služeb při selhání.

Následující tabulka popisuje podmínku selhání, která odpovídá každé úrovni.

Úroveň Podmínka selhání hodnota Transact-SQL Hodnota PowerShellu
Jedna Server je nefunkční. Určuje, že se spustí automatické převzetí služeb při selhání, když dojde k některé z následujících situací:

Služba SQL Serveru je v provozu.

Platnost zapůjčení skupiny dostupnosti pro připojení ke clusteru WSFC vyprší, protože z instance serveru není přijata žádná služba ACK. Další informace naleznete v tématu Jak to funguje: SQL Server AlwaysOn zapůjčení vypršení časového limitu.



Toto je nejnižší omezující úroveň.
1 OnServerDown
Dva Na serveru nereaguje. Určuje, že se automatické převzetí služeb při selhání zahájí, když dojde k některé z následujících situací:

Instance SQL Serveru se nepřipojí ke clusteru a dojde k překročení prahové hodnoty časového limitu kontroly stavu zadané uživatelem skupiny dostupnosti.

Replika dostupnosti je ve stavu selhání.
2 OnServerUnresponsive
Tři Při kritické chybě serveru. Určuje, že se automatické převzetí služeb při selhání inicializuje u kritických vnitřních chyb SQL Serveru, jako jsou opuštěné spinlocky, závažná porušení přístupu k zápisu nebo vygenerování příliš mnoha výpisů paměti v krátkém čase.

Toto je výchozí úroveň.
3 OnCriticalServerError
Čtyři Při střední chybě serveru. Určuje, že automatické převzetí služeb při selhání se zahájí při mírných vnitřních chybách SQL Serveru, jako je trvalý nedostatek paměti v interním fondu prostředků SQL Serveru. 4 OnModerateServerError
Pět Při jakýchkoli kvalifikovaných podmínkách selhání. Určuje, že automatické převzetí se zahájí u všech kvalifikovaných podmínek selhání, včetně:

Detekce zablokování plánovače úloh

Detekce nesolvovatelného zablokování.



Toto je nejvíce omezující úroveň.
5 PodmínkyJakéhokoliKvalifikovanéhoSelhání

Poznámka:

Nedostatek odpovědi instance SQL Serveru na požadavky klientů není pro skupiny dostupnosti relevantní.

Použití Transact-SQL

Konfigurace flexibilních zásad převzetí služeb při selhání

  1. Připojte se k instanci serveru, která je hostitelem primární repliky.

  2. Pro novou skupinu dostupnosti použijte příkaz CREATE AVAILABILITY GROUPTransact-SQL. Pokud upravujete existující skupinu dostupnosti, použijte příkaz ALTER AVAILABILITY GROUPTransact-SQL.

    • Pokud chcete nastavit úroveň podmínky převzetí služeb při selhání, použijte možnost FAILURE_CONDITION_LEVEL = n, kde n je celé číslo od 1 do 5.

      Například následující příkaz Transact-SQL změní úroveň stavu selhání existující skupiny dostupnosti na AG1úroveň 1:

      
      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1);  
      

      Vztah těchto celočíselné hodnoty k úrovním podmínky selhání je následující:

      hodnota Transact-SQL Úroveň Automatické přepnutí při selhání spuštěno, když...
      1 Jedna Server je nefunkční. Služba SQL Serveru se zastaví kvůli selhání nebo restartování.
      2 Dva Na serveru nereaguje. Pokud je splněna jakákoli podmínka nižší hodnoty, služba SQL Serveru je připojena ke clusteru a je překročena prahová hodnota časového limitu kontrolního stavu, nebo je aktuální primární replika ve stavu selhání.
      3 Tři Při kritické chybě serveru. Jakákoli podmínka nižší hodnoty je splněná nebo dojde k vnitřní chybě serveru, která je kritická.

      Toto je výchozí úroveň.
      4 Čtyři Při střední chybě serveru. Je splněna jakákoli podmínka nižší hodnoty nebo dojde k mírné chybě serveru.
      5 Pět Při jakýchkoli kvalifikovaných podmínkách selhání. Jakákoli podmínka nižší hodnoty je splněna nebo nastane určující podmínka selhání.

      Další informace o úrovních podmínek převzetí služeb při selhání najdete v tématu Flexibilní zásady automatického převzetí služeb při selhání skupiny dostupnosti (SQL Server).

    • Pokud chcete nakonfigurovat prahovou hodnotu časového limitu kontroly stavu, použijte HEALTH_CHECK_TIMEOUT = n možnost, kde n je celé číslo od 15000 milisekund (15 sekund) na 4294967295 milisekund. Výchozí hodnota je 30000 milisekund (30 sekund).

      Například následující příkaz Transact-SQL změní prahovou hodnotu časového limitu kontroly stavu u existující skupiny AG1dostupnosti na 60 000 milisekund (jednu minutu).

      
      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);  
      

Použití PowerShellu

Konfigurace flexibilních zásad převzetí služeb při selhání

  1. Nastavte výchozí (cd) na instanci serveru, která je hostitelem primární repliky.

  2. Při přidávání repliky dostupnosti do skupiny dostupnosti použijte rutinu New-SqlAvailabilityGroup . Při úpravě existující repliky dostupnosti použijte rutinu Set-SqlAvailabilityGroup .

    • Pokud chcete nastavit úroveň podmínky převzetí služeb při selhání, použijte parametr úrovněFailureConditionLevel, kde, úroveň je jedna z následujících hodnot:

      Hodnota Úroveň Automatické přepnutí při selhání spuštěno, když...
      OnServerDown Jedna Server je nefunkční. Služba SQL Serveru se zastaví kvůli selhání nebo restartování.
      OnServerUnresponsive Dva Na serveru nereaguje. Pokud je splněna jakákoli podmínka nižší hodnoty, služba SQL Serveru je připojena ke clusteru a je překročena prahová hodnota časového limitu kontrolního stavu, nebo je aktuální primární replika ve stavu selhání.
      OnCriticalServerError Tři Při kritické chybě serveru. Jakákoli podmínka nižší hodnoty je splněná nebo dojde k vnitřní chybě serveru, která je kritická.

      Toto je výchozí úroveň.
      OnModerateServerError Čtyři Při střední chybě serveru. Je splněna jakákoli podmínka nižší hodnoty nebo dojde k mírné chybě serveru.
      PodmínkyJakéhokoliKvalifikovanéhoSelhání Pět Při jakýchkoli kvalifikovaných podmínkách selhání. Jakákoli podmínka nižší hodnoty je splněna nebo nastane určující podmínka selhání.

      Další informace o úrovních podmínek převzetí služeb při selhání najdete v tématu Flexibilní zásady automatického převzetí služeb při selhání skupiny dostupnosti (SQL Server).

      Následující příkaz například změní úroveň stavu selhání existující skupiny AG1dostupnosti na úroveň 1.

      Set-SqlAvailabilityGroup `   
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg `   
      -FailureConditionLevel OnServerDown  
      
    • Pokud chcete nastavit prahovou hodnotu časového limitu kontroly stavu, použijte parametr HealthCheckTimeoutn , kde n je celé číslo od 15000 milisekund (15 sekund) na 4294967295 milisekund. Výchozí hodnota je 30000 milisekund (30 sekund).

      Následující příkaz například změní prahovou hodnotu časového limitu kontroly stavu u existující skupiny AG1dostupnosti na 120 000 milisekund (dvě minuty).

      Set-SqlAvailabilityGroup `   
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG `   
      -HealthCheckTimeout 120000  
      

Poznámka:

Pokud chcete zobrazit syntaxi rutiny, použijte rutinu Get-Help v prostředí SQL Server PowerShell. Další informace najdete v tématu Získání nápovědy k SQL Serveru PowerShell.

Nastavení a použití poskytovatele SQL Serveru PowerShellu

Související úkoly

Konfigurace automatického převzetí služeb při selhání

Související obsah

Viz také

přehled skupin dostupnosti AlwaysOn (SQL Server)
režimy dostupnosti (skupiny dostupnosti AlwaysOn)
Režimy převzetí služeb při selhání a převzetí služeb při selhání (skupiny dostupnosti Always On)
Clusterování technologie Windows Server Failover Clustering (WSFC) s SQL Serverem
zásady převzetí služeb při selhání pro instance clusteru s podporou převzetí služeb při selhání
sp_server_diagnostics (Transact-SQL)