Nakonfigurujte skupiny vždy na dostupnost na serveru SQL

V tomto článku se podíváme na postupnou instalaci a konfiguraci skupin dostupnosti. Vždy zapnuto v SQL Server v systému Windows Server 2019 zvažte scénáře převzetí služeb při selhání a řadu dalších souvisejících problémů.

Skupiny vždy k dispozici"Nebo"Skupiny vždy k dispozici„Jedná se o technologii pro vysokou dostupnost na serveru SQL. Ve verzi Microsoft SQL Server 2012 se objevilo vždy zapnuto.

Obsah:

  • Funkce skupin vždy k dispozici na serveru SQL
  • Konfigurace clusteru převzetí služeb při selhání systému Windows Server pro Vždy zapnuto
  • Konfigurace vždy zapnuta v MS SQL Server
  • Vždy zapnuto: kontrola výkonu, automatické převzetí služeb při selhání

Funkce skupin vždy k dispozici na serveru SQL

Na co lze použít skupiny dostupnosti serveru SQL?

  • Vysoká dostupnost MS SQL a automatické převzetí služeb při selhání;
  • Vybrat dotazy na vyrovnávání zatížení mezi uzly (sekundární repliky mohou být čitelné);
  • Zálohování ze sekundárních replik;
  • Redundance dat. Každá replika ukládá kopie databází skupin dostupnosti.

Always On běží na platformě Cluster převzetí služeb při selhání systému Windows Server (WSFC). WSFC monitoruje uzly účastnící se skupiny dostupnosti a může automaticky selhat volbou mezi uzly. Počínaje MS SQL Server 2017, možnost používat vždy zapnuto bez WSFC, včetně Linux systémy. Při vytváření klastru Linux můžete použít Pacemaker jako alternativu k WSFC.

Vždy zapnuto je k dispozici na adrese Standardní edice, ale s určitými omezeními:

  • Limit na 2 repliky (primární a sekundární);
  • Sekundární repliku nelze použít pro přístup ke čtení;
  • Sekundární repliku nelze použít pro zálohu MS SQL;
  • Podpora pouze 1 databáze na skupinu dostupnosti.

V editorech Podnik bez omezení.

Licenční funkce serveru MS SQL Server.

Terminologii rozumíme:

  • Vždy zapnutá skupina dostupnosti - Toto je sbírka replik a databází.
  • Replika - Toto je instance serveru SQL ve skupině dostupnosti. Replika může být hlavní (primární) a sekundární (sekundární) Každá replika může obsahovat jednu nebo více databází.

Vždy zapnuto je založeno na WSFC. Každý uzel skupiny dostupnosti musí být členem clusteru převzetí služeb při selhání systému Windows. Každá instance serveru SQL může mít více skupin dostupnosti. Každá skupina dostupnosti může mít až 8 sekundárních replik.

Pokud replika selže, klastr bude hlasovat pro novou primární repliku a Always On převede jednu ze sekundárních replik na primární. Protože při práci s funkcí Vždy zapnuto se uživatelé připojují k posluchači klastru (nebo k posluchači, tj. Zvláštní adrese IP klastru a odpovídajícímu názvu DNS), schopnost psaní požadavků bude plně obnovena. Posluchač je také zodpovědný za vyvažování vybraných dotazů mezi sekundárními replikami..

Konfigurace clusteru převzetí služeb při selhání systému Windows Server pro Vždy zapnuto

Nejprve musíme nakonfigurovat cluster převzetí služeb při selhání na všech uzlech, které se budou účastnit programu Always On.

Moje konfigurace:

  • 2 virtuální počítače na Hyper-V s Windows Server 2019;
  • 2 instance vydání SQL Server 2019 Enterprise;
  • Název hostitele uzlů je testnode1 a testnode2. Název instance node1 a node2.

Ve Správci serveru přidejte roli Shlukování převzetí služeb při selhání, nebo nainstalujte komponentu pomocí PowerShell:

Install-WindowsFeature - Name Failover-Clustering -IncludeManagementTools

Instalace je automatická, zatím nemusíte nic konfigurovat. Po dokončení instalace spusťte modul snap-in. Správce clusteru převzetí služeb při selhání (FailoverClusters.SnapInHelper.msc).

Vytvořte nový cluster.

Přidejte názvy serverů, které se budou účastnit klastru.

Průvodce potom nabídne absolvování testů. Neodmítávejte, vyberte první položku.

Zadejte název klastru, vyberte síť a IP adresu klastru. Název clusteru se automaticky objeví v DNS, nemusíte jej konkrétně registrovat. V mém případě název klastru - ClusterAG.

Odstraňujeme chebok “Přidejte do clusteru veškeré vhodné úložiště“, Protože můžeme disky přidat později.

V klastru jsou pouze 2 uzly, takže je třeba nakonfigurovat Klastrové kvórum. Kvorum seskupení je „rozhodující hlas“. Pokud se například některý z uzlů clusteru stane nedostupným, musí klastr určit, které uzly jsou skutečně dostupné a mohou se navzájem vidět. Kvůli konzistenci clusteru je zapotřebí kvora (Cluster -> Další akce -> Konfigurovat nastavení kvora clusteru).

Vyberte typ svědka kvora.

Poté vyberte typ svědka - síťová složka (sdílení souborů svědek).

Zadejte cestu UNC k síťové složce. Tento adresář musíte vytvořit sami a musí být na serveru, který není zapojen do klastru..

Při nastavování klastru se může zobrazit chyba:

Při konfiguraci svědka sdílení souborů došlo k chybě. Nelze uložit změny vlastností pro svědka sdílení souborů. Systém nemůže najít zadaný soubor.

Nejpravděpodobněji to znamená, že uživatel, ze kterého cluster pracuje, nemá práva k této síťové složce. Ve výchozím nastavení je cluster spuštěn jako místní uživatel. K této složce můžete udělit práva všem počítačům v klastru nebo změnit účet pro klastrovou službu a udělit jí práva.

Tím je dokončena základní konfigurace clusteru. Ujistěte se, že je klastr DNS registrován a udává správnou IP adresu

Konfigurace vždy zapnuta v MS SQL Server

Po standardní instalaci instance serveru SQL můžete povolit a nakonfigurovat skupiny vždy na dostupnost. Musí být součástí Správce konfigurace serveru SQL například vlastnosti. Jak můžete vidět na snímku obrazovky, SQL Server již určil, že je členem clusteru WSFC. Zaškrtněte políčko „Povolit vždy skupiny dostupnosti„A restartujte službu instance MSSQL. Ve druhé instanci postupujte stejným způsobem.

Tip.. Před konfigurací Vždy zapnuto se ujistěte, že služby serveru SQL nejsou spuštěny pod účtem místního systému. Doporučujeme používat účty spravované skupiny nebo běžný účet domény. Jinak nemůžete dokončit nastavení Vždy zapnuto..

V SQL Server Management Studio klikněte na „Vždy na vysoké dostupnosti„A spusťte průvodce konfigurací skupiny dostupnosti (Průvodce novou skupinou dostupnosti).

Zadejte název skupiny Always On Availability Group a vyberte „Detekce zdraví na úrovni databáze" Při této možnosti bude možnost Vždy zapnuta určit, kdy je databáze v nezdravém stavu..

Vyberte databáze serveru SQL, které se budou účastnit skupiny Always On Availability Group..

Klikněte na „Přidat repliku ...“ a připojte se k druhému serveru SQL. Tímto způsobem můžete přidat až 8 serverů.

  • Počáteční role - Role repliky v době vytvoření skupiny. Může být primární a sekundární;
  • Automatické převzetí služeb při selhání - Pokud databáze není k dispozici, převede vždy zapnutá primární role na jinou repliku. Zaškrtněte políčko;
  • Režim dostupnosti - možná si vybrat Synchronní potvrzení nebo Asynchronní potvrzení. Pokud vyberete synchronní režim, budou transakce přicházející do primární repliky odeslány do všech ostatních sekundárních replik se synchronním režimem. Primární replika dokončí transakci až poté, co repliky zapíšou transakci na disk. To vylučuje možnost ztráty dat, pokud primární replika selže. V asynchronním režimu hlavní replika okamžitě zaznamenává změny, aniž by čekala na odpověď ze sekundárních replik;
  • Čitelné sekundární - parametr určující schopnost provádět výběrové dotazy na sekundární repliky. Pokud ano, klienti i s připojením bez ApplicationIntent = readonly mohou získat přístup jen pro čtení;
  • Požadované synchronizované sekundární položky k potvrzení - Počet synchronizovaných sekundárních replik k dokončení transakce. Je nutné nastavit v závislosti na počtu replik, které uvedu 1. Mějte na paměti, že pokud se sekundární synchronizované repliky stanou méně než zadané číslo (například při nehodě), databáze skupin dostupnosti se stanou nedostupnými i pro čtení.

Koncové body se nedotýkají.

Tab Předvolby zálohování Můžete si vybrat, kam se budou zálohovat. Necháme vše jako výchozí - Preferujte sekundární.

Zadejte název posluchače přístupové skupiny, port a IP adresu.

Tab Směrování pouze pro čtení nechte beze změny.

Vybereme, jak budou repliky synchronizovány. Nechám první bod - automatická synchronizace (Automatické setí).

Poté by měla být vaše nastavení ověřena. Pokud neexistují žádné chyby, klikněte na Finish (Použít) pro provedení změn..

V mém případě byly všechny testy úspěšné, ale po instalaci v kroku Výsledky hlásil průvodce chybu při vytváření posluchače skupiny dostupnosti. Protokoly klastrů měly tuto chybu:

Prostředek síťového názvu clusteru se nepodařilo vytvořit přidružený počítačový objekt v doméně.

To znamená, že klastr nemá dostatečná práva k vytvoření posluchače. V dokumentaci se uvádí, že k vytvoření objektu typu clusteru stačí udělit oprávnění k vytváření objektů typu „počítač“. Nejjednodušší způsob, jak toho dosáhnout, je delegování oprávnění na AD (nebo rychlá, ale špatná možnost je dočasně přidat objekt CLUSTERAG $ do skupiny Domain Admins).

Při diagnostice problémů s vždy zapnutým a nízkým výkonem SQL ve skupině dostupnosti byste kromě standardních diagnostických nástrojů serveru SQL Server měli pečlivě sledovat protokoly clusterů systému Windows.

Protože jsem vytvořil skupinu pro usnadnění přístupu, ale posluchač není, přidal jsem ji ručně. Nazýváme kontextové menu ve skupině dostupnosti a klikneme na Přidat posluchače...

Zadejte IP adresu, port a název DNS posluchače.

Ověřte, že se posluchač objevil v části Dostupné posluchače skupiny Always On.

Tím je dokončeno základní nastavení skupiny Always On Availability Group..

Vždy zapnuto: kontrola výkonu, automatické převzetí služeb při selhání

Podívejte se na řídicí panel.

Všechno je v pořádku, skupina dostupnosti je vytvořena a funkční..

Zkusme přenést hlavní roli na instanci node2 v ručním režimu. Klepněte pravým tlačítkem myši na skupinu dostupnosti a vyberte Failover.

Je třeba věnovat pozornost položce Připravenost při selhání. Hodnota Žádná ztráta dat znamená, že je vyloučena ztráta dat během přechodu.

Připojuje se k uzlu 2.

Klikněte na Dokončit.

Ověřte, že se node2 stal primární replikou ve skupině dostupnosti (primární instance).

Ujistěte se, že posluchač pracuje tak, jak má. V SSMS zadejte název DNS posluchače a port oddělený čárkami: ag1-listener-1 1445

Udělejme jednoduché vkládání, výběr a aktualizaci dotazů do naší databáze SQL Server.

Nyní se podívejme na automatické převzetí služeb při selhání hlavní repliky. Stačí ukončit proces sqlservr.exe na TESTNODE2.

Kontrola stavu skupiny dostupnosti na zbývajícím uzlu - TESTNODE1 \ NODE1.

Klastr automaticky přenesl stav repliky testnode1 \ node1 na primární, protože testnode2 \ node2 se stal nedostupným.

Zkontrolujeme stav posluchače, protože k němu dojde připojení klientů.

V mém případě jsem se úspěšně připojil k posluchači, ale při přístupu k databázi došlo k chybě

Nelze získat přístup k databázi 'TestDatabase', protože jí chybí kvora uzlů pro vysokou dostupnost. Zkuste operaci znovu později.

K této chybě došlo z důvodu „Požadované synchronizované sekundární položky k potvrzení" Protože při nastavování jsme tuto hodnotu nastavili na 1, Vždy zapnuto nám brání v připojení k databázi, protože máme pouze jednu primární repliku.

Nastavte tuto hodnotu na 0 a zkuste to znovu.

Zapněte testnode2 a zkontrolujte stav skupiny.

Stav primární repliky zůstal u testnode1 a testnode2 se stal sekundární replikou. Data, která jsme změnili na testnode1, když byl testnode2 vypnut, se po zapnutí stroje úspěšně synchronizovaly.

Toto je konec testování. Ujistili jsme se, že vše funguje správně a v případě kritického selhání zůstanou data k dispozici pro přístup ke čtení a zápisu.

Kromě funkce Vždy zapnuto má SQL Server několik dalších technologií s vysokou dostupností..

Skupiny Always On Availability jsou snadno konfigurovatelné. Pokud čelíte úkolu vytvořit řešení odolné proti chybám na základě serveru SQL, pak skupiny dostupnosti tuto úlohu dokonale provedou..

S vydáním SQL Server 2017 a SQL Server 2019 zavedlo SQL Server Management Studio 18.x Always On nastavení, která byla dříve k dispozici pouze prostřednictvím T-SQL, takže se doporučuje používat nejnovější verzi SSMS.