Nakonfigurujte skupiny vždy na dostupnosti na serveri SQL Server

V tomto článku sa pozrieme na postupnú inštaláciu a konfiguráciu skupín dostupnosti. Vždy zapnuté v serveri SQL Server v systéme Windows Server 2019 zvážte scenáre zlyhania a množstvo ďalších súvisiacich problémov.

"Skupiny vždy k dispozícii"Alebo"Skupiny vždy k dispozícii„Je to technológia pre vysokú dostupnosť na serveri SQL Server. Always On sa objavilo vo vydaní Microsoft SQL Server 2012.

obsah:

  • Funkcie skupín vždy k dispozícii na serveri SQL Server
  • Nakonfigurujte klaster Windows Server Failover Cluster na Always On
  • Konfigurácia vždy zapnutá v MS SQL Server
  • Vždy zapnuté: kontrola výkonu, automatické núdzové prepnutie

Funkcie skupín vždy k dispozícii na serveri SQL Server

Na čo sa dajú použiť skupiny dostupnosti servera SQL Server?

  • Vysoká dostupnosť MS SQL a automatické núdzové prepnutie;
  • Vybrané dotazy na vyrovnávanie zaťaženia medzi uzlami (sekundárne repliky môžu byť čitateľné);
  • Zálohovanie zo sekundárnych replík;
  • Redundancia dát. Každá replika ukladá kópie databáz skupín dostupnosti.

Always On beží na platforme Windows Server Failover Cluster (WSFC). WSFC monitoruje uzly zúčastnené v skupine dostupnosti a môže automaticky zlyhať hlasovaním medzi uzlami. Počnúc MS SQL Server 2017, možnosť používať Always On bez WSFC, vrátane linux systémy. Pri budovaní klastra Linux môžete použiť Pacemaker ako alternatívu k WSFC.

Vždy zapnuté je k dispozícii na adrese štandardné vydanie, ale s určitými obmedzeniami:

  • Limit na 2 repliky (primárne a sekundárne);
  • Sekundárnu repliku nemožno použiť na prístup na čítanie;
  • Sekundárnu repliku nemožno použiť na zálohovanie MS SQL;
  • Podpora iba 1 databázy na skupinu dostupnosti.

V editore Podnik žiadne obmedzenia.

Funkcie licencovania MS SQL Server.

Porozumieme terminológii:

  • Vždy zapnutá skupina dostupnosti - Toto je zbierka replík a databáz.
  • replika - Toto je inštancia servera SQL Server v skupine dostupnosti. Replika môže byť hlavná (primárny) a sekundárne (sekundárne). Každá replika môže obsahovať jednu alebo viac databáz.

Vždy zapnuté je založené na WSFC. Každý uzol skupiny dostupnosti musí byť členom klastra zlyhania systému Windows. Každá inštancia servera SQL Server môže mať viac skupín dostupnosti. Každá skupina dostupnosti môže mať až 8 sekundárnych replík.

Ak replika zlyhá, klaster bude hlasovať pre novú primárnu repliku a Always On prevedie jednu zo sekundárnych replík na primárnu. Pretože pri práci so službou Vždy zapnuté sa používatelia pripájajú k poslucháčovi klastrov (alebo k Listener, to znamená k špeciálnej adrese IP klastra a zodpovedajúcemu názvu DNS), schopnosť písať žiadosti sa úplne obnoví. Poslucháč je tiež zodpovedný za vyváženie vybraných dopytov medzi sekundárnymi replikami..

Nakonfigurujte klaster Windows Server Failover Cluster na Always On

Najprv musíme nakonfigurovať klaster na prevzatie služieb pri zlyhaní na všetkých uzloch, ktoré sa budú zúčastňovať programu Always On.

Moja konfigurácia:

  • 2 virtuálne stroje na Hyper-V so systémom Windows Server 2019;
  • 2 príklady vydania SQL Server 2019 Enterprise;
  • Názov hostiteľa uzlov je testnode1 a testnode2. Názov inštancie node1 a node2.

V Správcovi serverov pridajte rolu Klastrovanie zlyhania, alebo nainštalujte komponent pomocou PowerShell:

Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools

Inštalácia je automatická, zatiaľ nemusíte nič konfigurovať. Po dokončení inštalácie spustite modul snap-in. Správca klastrov zlyhania (FailoverClusters.SnapInHelper.msc).

Vytvorte nový klaster.

Pridajte názvy serverov, ktoré sa zúčastnia klastra.

Sprievodca potom ponúkne absolvovanie testov. Nezamietajte výber prvej položky.

Zadajte názov klastra, vyberte sieť a adresu IP klastra. Názov klastra sa automaticky zobrazí v DNS, nemusíte ho osobitne registrovať. V mojom prípade názov klastra - ClusterAG.

Odstraňujeme chebok “Pridajte všetky vhodné úložné priestory do klastra“, Ako môžeme disky pridať neskôr.

V klastri sú iba 2 uzly, takže musíte nakonfigurovať Klastrové kvórum. Kvórum klastra je „rozhodujúci hlas“. Napríklad, ak jeden z klastrových uzlov nie je k dispozícii, klaster musí určiť, ktoré uzly sú skutočne k dispozícii a môžu sa navzájom vidieť. Kvôli konzistentnosti klastra je potrebné kvórum (Klaster -> Ďalšie akcie -> Konfigurovať nastavenia kvora klastra).

Vyberte typ svedka uznášaniaschopného.

Potom vyberte typ svedka - sieťový priečinok (svedok zdieľania súborov).

Zadajte cestu UNC k sieťovému priečinku. Tento adresár musíte vytvoriť sami a musí sa nachádzať na serveri, ktorý nie je súčasťou klastra..

Pri nastavovaní klastra sa môže zobraziť chyba:

Pri konfigurácii svedka zdieľania súborov sa vyskytla chyba. Zmeny svedkov zdieľania súborov sa nepodarilo uložiť. Systém nemôže nájsť zadaný súbor.

Najpravdepodobnejšie to znamená, že užívateľ, z ktorého klaster pracuje, nemá práva na tento sieťový priečinok. V predvolenom nastavení je klaster spustený ako miestny používateľ. Tomuto priečinku môžete prideliť práva všetkým počítačom v klastri alebo zmeniť účet pre klastrovú službu a prideliť mu práva.

Týmto sa dokončí základná konfigurácia klastra. Skontrolujte, či je klastrový DNS zaregistrovaný a či má správnu IP adresu

Konfigurácia vždy zapnutá v MS SQL Server

Po štandardnej inštalácii inštancie servera SQL Server môžete povoliť a nakonfigurovať skupiny vždy na dostupnosti. Musia byť súčasťou SQL Server Configuration Manager napríklad vlastnosti. Ako môžete vidieť na snímke obrazovky, SQL Server už zistil, že je členom klastra WSFC. Zaškrtnite políčko „Povoliť skupiny vždy pri dostupnosti“A reštartujte inštanciu služby MSSQL. Rovnaké kroky postupujte aj pri druhej inštancii.

rada.. Pred konfiguráciou Always On sa uistite, že služby SQL Server nie sú spustené pod lokálnym systémovým účtom. Odporúča sa používať účty spravované skupinou alebo bežný účet domény. V opačnom prípade nemôžete dokončiť nastavenie Vždy zapnuté..

V SQL Server Management Studio kliknite na „Vždy na vysokej dostupnosti“A spustite sprievodcu konfiguráciou skupiny dostupnosti (Sprievodca novou skupinou dostupnosti).

Zadajte názov skupiny Always On Availability Group a vyberte „Detekcia zdravotného stavu na úrovni databázy". Pri tejto možnosti bude možnosť Always On vždy schopná určiť, kedy je databáza v nezdravom stave..

Vyberte databázy servera SQL Server, ktoré sa zúčastnia skupiny Always On Availability Group..

Kliknite na „Pridať repliku ...“ a pripojte sa k druhému serveru SQL. Týmto spôsobom môžete pridať až 8 serverov.

  • Počiatočná úloha - Úloha repliky v čase vytvorenia skupiny. Môže byť primárny a sekundárny;
  • Automatické núdzové prepnutie - ak je databáza nedostupná, funkcia Always On prenesie primárnu rolu do inej repliky. Začiarknite políčko;
  • Režim dostupnosti - možno zvoliť Synchrónne potvrdenie alebo Asynchrónne potvrdenie. Ak vyberiete synchrónny režim, transakcie prichádzajúce k primárnej replike sa odošlú do všetkých ostatných sekundárnych replík so synchrónnym režimom. Primárna replika dokončí transakciu až potom, čo repliky zapíšu transakciu na disk. To vylučuje možnosť straty údajov v prípade zlyhania primárnej repliky. V asynchrónnom režime hlavná replika okamžite zaznamená zmeny, bez čakania na odpoveď zo sekundárnych replík;
  • Čítateľné sekundárne - parameter špecifikujúci schopnosť vykonávať výberové dotazy na sekundárne repliky. Ak áno, klienti aj s pripojením bez ApplicationIntent = readonly môžu získať prístup len na čítanie;
  • Vyžaduje sa synchronizovaný sekundárny server - Počet synchronizovaných sekundárnych replík na dokončenie transakcie. Je potrebné nastaviť v závislosti od počtu replík, ktoré uvediem 1. Majte na pamäti, že ak sa sekundárne synchronizované repliky stanú menej ako zadané číslo (napríklad pri nehode), databázy skupín dostupnosti sa stanú neprístupnými dokonca aj na čítanie.

Koncové body sa nedotýkajú.

pútko Predvoľby zálohovania Môžete si vybrať, kam sa budú zálohovať. Všetko ponecháme ako predvolené - Preferujte sekundárne.

Zadajte názov poslucháča prístupovej skupiny, port a IP adresu.

pútko Smerovanie iba na čítanie ponechajte bezo zmeny.

Vyberáme spôsob synchronizácie replík. Nechám prvý bod - automatickú synchronizáciu (Automatické nasadenie).

Potom by sa vaše nastavenia mali overiť. Ak neexistujú žiadne chyby, kliknite na Dokončiť, aby sa zmeny použili..

V mojom prípade boli všetky testy úspešné, ale po inštalácii v kroku Výsledky hlásil sprievodca chybu pri vytváraní poslucháča skupiny dostupnosti. Protokoly klastrov mali túto chybu:

Prostriedok sieťového názvu klastra sa nepodarilo vytvoriť svoj pridružený počítačový objekt v doméne.

To znamená, že klaster nemá dostatočné práva na vytvorenie poslucháča. V dokumentácii sa uvádza, že na vytvorenie objektu typu klastra stačí na vytvorenie objektov typu „počítač“. Najjednoduchší spôsob, ako to dosiahnuť, je delegovanie oprávnenia na AD (alebo rýchlou, ale zlou možnosťou je dočasne pridať objekt CLUSTERAG $ do skupiny Domain Admins).

Pri diagnostikovaní problémov so vždy zapnutým a nízkym výkonom SQL v skupine dostupnosti by ste mali okrem štandardných diagnostických nástrojov servera SQL Server pozorne sledovať protokoly klastra systému Windows..

Pretože som vytvoril skupinu prístupnosti, ale poslucháč nie, pridal som ju manuálne. Nazývame kontextové menu v skupine dostupnosti a klikneme na Pridať poslucháča...

Zadajte IP adresu, port a názov DNS poslucháča.

Skontrolujte, či sa poslucháč objavil v časti Dostupné poslucháči skupiny Always On..

Týmto sa dokončí základné nastavenie skupiny Always On Availability Group..

Vždy zapnuté: kontrola výkonu, automatické núdzové prepnutie

Pozrite sa na informačný panel.

Všetko je v poriadku, skupina dostupnosti je vytvorená a funguje..

Skúsme preniesť hlavnú rolu na inštanciu node2 v manuálnom režime. Pravým tlačidlom myši kliknite na skupinu dostupnosti a vyberte položku failover.

Je potrebné venovať pozornosť položke Pripravenosť na zlyhanie. hodnota Žiadna strata dát znamená, že strata údajov počas prechodu je vylúčená.

Pripája sa k uzlu 2.

Kliknite na tlačidlo Dokončiť.

Overte, či sa uzol 2 stal primárnou replikou v skupine dostupnosti (primárna inštancia).

Uistite sa, že poslucháč pracuje tak, ako má. V SSMS zadajte názov DNS poslucháča a port oddelený čiarkami: AG1-poslucháč-1,1445

Urobme jednoduché vkladanie, výber a aktualizáciu dotazov do našej databázy SQL Server.

Teraz sa pozrime na automatické zlyhanie hlavnej repliky. Stačí ukončiť proces sqlservr.exe na TESTNODE2.

Kontrola stavu skupiny dostupnosti na zostávajúcom uzle - TESTNODE1 \ NODE1.

Klaster automaticky preniesol stav repliky testnode1 \ node1 na primárny, pretože testnode2 \ node2 sa stal nedostupným.

Skontrolujeme stav poslucháča, pretože k tomu dôjde k pripojeniu klientov.

V mojom prípade som sa úspešne pripojil k poslucháčovi, ale pri prístupe do databázy sa vyskytla chyba

Nemožno získať prístup k databáze „TestDatabase“, pretože jej nie je k dispozícii kvórum uzlov kvôli vysokej dostupnosti. Skúste operáciu znova neskôr.

Táto chyba sa vyskytla z dôvodu „Vyžaduje sa synchronizovaný sekundárny server". Pretože pri nastavovaní sme túto hodnotu nastavili na 1, Vždy zapnuté nám bráni v pripájaní sa k databáze, pretože máme iba jednu primárnu repliku.

Nastavte túto hodnotu na 0 a skúste to znova.

Zapnite testnode2 a skontrolujte stav skupiny.

Stav primárnej repliky zostal s testnode1 a testnode2 sa stal sekundárnou replikou. Dáta, ktoré sme zmenili na testnode1, keď bol testnode2 vypnutý, sa po zapnutí stroja úspešne synchronizovali.

Toto je koniec testovania. Zabezpečili sme, aby všetko fungovalo správne a v prípade kritického zlyhania zostanú údaje dostupné na prístup na čítanie / zápis.

Okrem funkcie Vždy zapnutý má server SQL Server aj niekoľko ďalších technológií s vysokou dostupnosťou..

Skupiny vždy k dispozícii sú pomerne ľahko konfigurovateľné. Ak máte pred sebou úlohu vytvoriť riešenie odolné voči chybám založené na SQL Serveri, skupiny dostupnosti budú túto úlohu vykonávať dokonale..

S vydaním SQL Server 2017 a SQL Server 2019 zaviedlo SQL Server Management Studio 18.x nastavenie Vždy zapnuté, ktoré boli predtým k dispozícii iba prostredníctvom T-SQL, preto sa odporúča používať najnovšiu verziu SSMS.