Nástroje vysokej dostupnosti v MS SQL Server

V tomto článku sa zameriame na všetky technológie servera SQL Server, ktoré môžu poskytnúť vysokú dostupnosť údajov a odolnosť voči chybám vášho servera SQL..

Zálohovanie je dobré, ale keď faktúra trvá niekoľko minút a niekedy aj sekundy, pomôže vám iba redundancia údajov a jasný plán zlyhania. SQL Server poskytuje rôzne spôsoby implementácie redundancie dát a vysokej dostupnosti.

obsah:

  • Zrkadlenie databázy na serveri SQL Server
  • Preprava denníka v SQL Server
  • Replikácia v Microsoft SQL Server: Prehľad metód
  • Skupiny vždy k dispozícii na serveri SQL Server

Zrkadlenie databázy na serveri SQL Server

  • Dostupné vo vydaniach: štandardné (iba synchrónny režim), Enterprise, Web / express - iba režim svedkov
  • Funguje na úrovni: databázy
  • Verzia servera SQL: SQL Server 2005, SQL Server 2008
poznámka. Zrkadlenie databázy je v režime údržby a môže byť odstránený v budúcich verziách servera SQL Server, preto sa neodporúča používať túto technológiu vo verziách vyšších ako SQL Server 2008..

Zrkadlenie funguje na úrovni databázy (stále môže byť na úrovni objektu) a poskytuje automatický / manuálny prechod medzi servermi v prípade zlyhania. Rezervná základňa v ktoromkoľvek z prevádzkových režimov zrkadlenia bude v stave nepretržitého zotavovania, preto nebude fungovať.

Zrkadlenie má 2 režimy činnosti: Synchrónne a Asynchrónne..

synchrónne režim znamená, že hlavný server a záloha sú úplne synchronizované. Synchronizácia sa dosiahne kvôli skutočnosti, že dáta, ktoré prichádzajú na hlavný server, sa okamžite odosielajú na záložný server. Záložný server zapisuje údaje do protokolu transakcií na disk čo najrýchlejšie. Akonáhle záložný server dokončí zápis údajov, vyšle signál na hlavný server, po ktorom hlavný server zapíše údaje na disk. V tomto režime sa čas transakcie zvyšuje v dôsledku skutočnosti, že hlavný server musí čakať, kým sa údaje nezapíšu na disk na záložnom serveri, ale pri tomto postupe je pravdepodobnosť straty údajov minimálna..

V synchrónnom režime je možné používať server Witness. Server v režime svedka monitoruje výkon zrkadliacich serverov a môže iniciovať zlyhanie, to znamená, že pohotovostný server prejde do aktívneho stavu..

Musíte mať na pamäti, že prekážky na záložnom serveri ovplyvnia hlavné.

asynchrónne alebo vysoko výkonný režim - Funguje to okrem toho, že hlavný server po odoslaní protokolu transakcií nečaká na odpoveď zo zálohy o úspešnom zápise na disk.

V tomto režime sú transakcie rýchlejšie a výkon záložného servera nemá vplyv na primárny, ale ak sa záložný server obnoví ako primárny, existuje riziko straty údajov, pretože údaje na serveroch nie sú synchronizované..

Zrkadlenie by sa malo používať iba v prípade, že máte zápas za všetkých podmienok

  • SQL Server 2008 alebo SQL Server 2005
  • Nízka latencia siete medzi primárnym serverom a pohotovostným režimom
  • Strata ani jednej transakcie je pre vás kritická

Ak váš prípad nespĺňa všetky podmienky, zvážte ďalšie možnosti..

Preprava denníka v SQL Server

  • Dostupné vo vydaniach: Štandardný, web, podnik
  • Funguje na úrovni: databázy
  • Verzia servera SQL: SQL Server 2005 a novší

Technológia doručovania protokolov umožňuje automaticky odosielať záložné kópie protokolov transakcií zo zdrojovej databázy do jednej alebo viacerých databáz príjemcov a potom ich obnovuje do databáz príjemcov. Voliteľne môže existovať tretí server, ktorý bude vykonávať úlohu monitorovacej služby - na monitorovanie vykonávania protokolov zálohovania a obnovy..

Monitorovanie a diagnostika servera SQL diskutované v samostatnom článku.

Po nastavení prepravy denníka sa vytvoria úlohy. Princíp činnosti je nasledujúci:

  1. Prvá úloha je zodpovedná za zálohovanie protokolu transakcií na primárnom serveri
  2. Druhá úloha je zodpovedná za distribúciu zálohy na všetky prijímacie servery
  3. Tretia úloha obnoví protokoly do všetkých databáz príjemcov. Obnovenie je k dispozícii v režime bez obnovy alebo v pohotovostnom režime.

Toto je jednoduchšia technológia, pokiaľ ide o zrkadlenie a vždy zapnuté. Preprava denníka by sa mala použiť, keď:

  • Dátový rozdiel medzi primárnym serverom a cieľovým serverom je prijateľný. Štandardný plán dokončenia úloh je každých 15 minút. Môžete dať menej, ale musíte zvážiť rýchlosť prenosu údajov v sieti a čas na obnovenie protokolov.
  • Chcete získať prístup k databázam príjemcov, aby ste mali prístup na čítanie. Je to možné, keď je režim obnovenia nastavený do pohotovostného režimu. Majte však na pamäti, že do databázy máte prístup iba medzi obnovením denníka.

Replikácia v Microsoft SQL Server: Prehľad metód

  • Dostupné vo vydaniach: Štandardné a webové - obmedzené, Enterprise
  • Funguje na úrovni: Objekt databázy
  • Verzia servera SQL: SQL Server 2000 a novší
Pozrite si prehľad edícií a licenčných funkcií servera SQL Server..

Existujú rôzne typy replikácie:

  • Transakčná replikácia
  • Transakčná replikácia typu peer-to-peer
  • Replikácia snímky
  • Zlúčiť replikáciu

Na základe transakčnej replikácie existujú ďalšie dve topológie:

  • Obojsmerná transakčná replikácia
  • Obnoviteľné predplatné na transakčné replikáciu (funkcia je podporovaná vo verziách servera SQL Server 2012 až 2016)

Replikácia sa dá použiť na rôzne účely, ale používa sa hlavne na vyťaženie serverov OLTP pomocou vybraných dopytov a na zabezpečenie vysokej dostupnosti. Hoci spoločnosť Microsoft neukladá replikáciu ako prostriedok na dosiahnutie vysokej dostupnosti, túto úlohu môže dobre splniť..

Poznámka: V modeli replikácie servera SQL sú 3 typy serverov:

  • vydavateľ (vydavateľ) - server, ktorý publikuje články
  • distribútor (distribútor) - server, ktorý distribuuje články na predplatné servery
  • predplatiteľ (predplatiteľ) - server, ktorý prijíma distribuované články

Zmeny, ktoré sa uskutočnia vo vybratých objektoch vydavateľa, sa najskôr odošlú distribútorovi, potom distribútor pošle tieto zmeny účastníkom.

Zvážte 4 základné typy replikácie

Transakčná replikácia

Tento typ replikácie sa používa na replikáciu údajov takmer v reálnom čase, to znamená, že údaje o účastníkoch sa objavujú takmer okamžite, pričom sa berie do úvahy čas kopírovania údajov v sieti..

Transakcie od vydavateľa sa zasielajú distribútorovi, distribútor tieto transakcie posiela účastníkom. Distribútor môže zasielať údaje predplatiteľom okamžite alebo podľa konkrétneho rozvrhu. Subjekty predplatiteľa, ktoré sa zúčastňujú replikácie, by sa mali používať iba na prístup len na čítanie, inak sa údaje stanú nekonzistentnými a dôjde ku konfliktu..

Transakčná replikácia typu peer-to-peer

Transakčná replikácia typu Peer-to-Peer alebo Peer-to-Peer je podobná ako pri normálnej transakčnej replikácii, ale môže fungovať s viacerými servermi súčasne..

Replikácia typu peer-to-peer sa môže nazývať replikácia master-master (pre normálnu transakčnú replikáciu by to bola master-slave). Zoberme si diagram z dokumentácie spoločnosti Microsoft

Každá inštancia servera SQL Server, ktorá sa zúčastňuje replikácie typu peer-to-peer, môže spracovať operácie čítania a zápisu. Aj pri tomto type replikácie sa poskytuje mechanizmus riešenia konfliktov, keď rovnaká operácia príde na niekoľko serverov súčasne, napríklad požiadavka na aktualizáciu. Ale aj s ohľadom na tento mechanizmus sa neodporúča zapisovať údaje do viacerých inštancií súčasne..

Tento typ replikácie sa môže použiť na vyrovnávanie záťaže vrátane operácií aktualizácie / vloženia / odstránenia..

Replikácia snímky

Toto je špeciálny typ replikácie, ktorý nesleduje zmeny údajov vo vydavateľovi, ale podľa určitého plánu vytvorí snímku a pošle ju účastníkom (prostredníctvom distribútora)..

Replikácia snímok neuplatňuje všetky transakcie postupne, ako je to v prípade doručovania protokolov a transakčných replikácií, ale kopíruje údaje pomocou protokolu bcp.

Tento druh replikácie sa oplatí použiť, keď:

  • Údaje sa zriedka menia
  • Povolený rozdiel údajov medzi vydavateľom a predplatiteľom
  • Veľký objem zmien v krátkom časovom období

Zlúčiť replikáciu

Mechanizmus je podobný transakčnej replikácii typu peer-to-peer, existuje však niekoľko dôležitých rozdielov:

  • Zlúčená replikácia môže mať iba jedného vydavateľa a niekoľko predplatiteľov, keď sú rovnako ako v replikácii typu peer-to-peer rovnaké všetky navzájom (sú zároveň vydavateľmi aj predplatiteľmi).
  • Pri zlúčenej replikácii môžu účastníci dostávať rôzne údaje, keď majú všetky servery rovnaké údaje v replikácii typu peer-to-peer.
  • Zlúčiť replikáciu môže vyriešiť konflikty peer-to-peer - nie
  • Replikácia typu peer-to-peer je k dispozícii iba v edícii Enterprise

Zlúčená replikácia by sa mala použiť, keď potrebujete konsolidovať údaje..

Obojsmerná transakčná replikácia a vylepšené predplatné transakčnej replikácie

Obojsmerný transakčný je topológia, pri ktorej je normálna transakčná replikácia nakonfigurovaná na replikáciu rovnakých údajov. Parameter @loopback_detection v sp_addsubscription musí byť nastavený na TRUE

Predplatné obnoviteľnej transakčnej replikácie sú podobné zlúčeniu replikácie. Táto technológia sa stala pomerne zastaranou pomerne rýchlo, pretože sa prakticky nepoužila a nahrádza ju iné typy replikácie..

Skupiny vždy k dispozícii na serveri SQL Server

  • Dostupné vo vydaniach: štandardné (s obmedzeniami), Podnik (
  • Funguje na úrovni: databázy
  • Verzia servera SQL: SQL Server 2012 a novšie verzie

Skupiny Always On Availability sa objavili vo vydaní SQL Server 2012. Toto je alternatíva (aj keď skôr vývoj) technológie zrkadlenia databázy..

Skupiny vždy k dispozícii sú založené na Windows Server Failover Cluster, ale od verzie 2017, možnosť použitia Vždy zapnuté bez WSFC. Vždy zapnuté je podobné zrkadleniu databázy (synchrónne a asynchrónne režimy), ale môže existovať až 8 sekundárnych replík. Always On podporuje automatické núdzové prepnutie (tj keď dôjde k zlyhaniu primárnej inštancie klastra, WSCF vyberie novú primárnu repliku a presmeruje na ňu požiadavky na zápis).

Každá inštancia v skupine dostupnosti môže byť buď primárny (hlavné) alebo sekundárne (Sekundárne). Sekundárne repliky môžu byť buď v Read-only, buď v Žiadne zotavenie. Každá inštancia v skupine dostupnosti obsahuje kópie databáz skupiny dostupnosti. Majte na pamäti, že v synchrónnom režime bude rýchlosť transakcií závisieť od „najpomalšieho“ člena skupiny dostupnosti.

V základnom nastavení je funkcia Always On vždy jednoduchá, po inštalácii servera SQL Server je možné všetko nakonfigurovať pomocou sprievodcu (WSFC prostredníctvom modulu snap-in v systéme Windows a prístupové skupiny samotné prostredníctvom sprievodcu v SSMS). Ale s veľkým počtom serverov a komplexnou infraštruktúrou budete musieť dokumentáciu dobre preštudovať.

Odporúča sa používať funkciu Vždy zapnutá v rovnakých situáciách pri zrkadlení alebo ak potrebujete vyváženie záťaže vybratých dopytov. Odporúča sa tiež, aby sa zálohy vyrábali zo sekundárnych replík, čo je ďalšia aplikácia skupín dostupnosti.

Ďalšie informácie o skupinách Always On Availability Groups na serveri SQL Server nájdete na stránke.

SQL Server poskytuje širokú škálu riešení dostupnosti údajov. Ak máte vydanie Enterprise a SQL Server 2012 (a vyššie), je lepšie používať funkciu Always On. Replikácia sa môže použiť na odľahčenie systémov OLTP s vybranými dotazmi a na čiastočnú redundanciu (hoci replikácia typu peer-to-peer je umiestnená ako úplný prostriedok redundancie údajov). Dodanie protokolu transakcií a zrkadlenie databázy sa dá použiť v starších verziách servera SQL Server, alebo ak vás podmienky nútia používať tieto technológie..

Majte na pamäti, že všetky vyššie uvedené technológie vysokej dostupnosti na serveri SQL Server nenahrádzajú zálohy..