Nástroje vysoké dostupnosti v MS SQL Server

V tomto článku se podíváme na všechny technologie serveru SQL, které mohou poskytovat vysokou dostupnost dat a odolnost proti chybám pro váš server SQL..

Zálohy jsou dobré, ale když účet trvá několik minut a někdy i vteřiny, pomůže pouze redundance dat a jasný plán převzetí služeb při selhání. SQL Server poskytuje různé způsoby implementace redundance dat a vysoké dostupnosti.

Obsah:

  • Zrcadlení databáze na serveru SQL
  • Doručení protokolu na serveru SQL
  • Replikace v Microsoft SQL Server: Přehled metod
  • Skupiny vždy k dispozici na serveru SQL

Zrcadlení databáze na serveru SQL

  • Dostupné v edicích: Standardní (pouze synchronní režim), Enterprise, Web / express - pouze režim svědka
  • Funguje na úrovni: Databáze
  • Verze serveru SQL: SQL Server 2005, SQL Server 2008
Poznámka:. Zrcadlení databáze je v režimu údržby a může být odstraněn v budoucích verzích serveru SQL, proto se nedoporučuje používat tuto technologii ve verzích vyšších než SQL Server 2008.

Zrcadlení funguje na úrovni databáze (stále může být na úrovni objektů) a poskytuje automatický / ruční přechod mezi servery v případě selhání. Rezervní základna v kterémkoli z provozních režimů zrcadlení bude ve stavu nepřetržitého zotavování, proto nebude fungovat.

Zrcadlení má dva režimy činnosti: synchronní a asynchronní..

Synchronní režim znamená, že hlavní server a záloha jsou plně synchronizovány. Synchronizace je dosaženo díky skutečnosti, že data, která přicházejí na hlavní server, jsou okamžitě odeslána na záložní server. Záložní server zapisuje data do protokolu transakcí na disk co nejrychleji. Jakmile záložní server dokončí zápis dat, vyšle signál na hlavní server, po kterém hlavní server zapíše data na disk. V tomto režimu se doba transakce prodlužuje kvůli skutečnosti, že hlavní server musí počkat, až budou data zapsána na disk na záložním serveru, ale při tomto přístupu je pravděpodobnost ztráty dat minimální.

V synchronním režimu je možné použít server Witness. Server v režimu svědka monitoruje výkon serverů zrcadlení a může iniciovat převzetí služeb při selhání, to znamená, že záložní server přejde do aktivního stavu.

Musíte mít na paměti, že úzká místa na záložním serveru ovlivní hlavní.

Asynchronní nebo vysoce výkonný režim - Funguje to také s tou výjimkou, že hlavní server po odeslání protokolu transakcí nečeká na odpověď ze zálohy o úspěšném zápisu na disk.

V tomto režimu jsou transakce rychlejší a výkon záložního serveru neovlivní primární, ale pokud je záložní server obnoven jako primární, existuje riziko ztráty dat, protože data na serverech nejsou synchronizována..

Zrcadlení by mělo být použito, pouze pokud máte shodu za všech podmínek

  • SQL Server 2008 nebo SQL Server 2005
  • Nízká latence sítě mezi primárním serverem a pohotovostním režimem
  • Ztráta jedné transakce je pro vás kritická

Pokud váš případ nesplňuje všechny podmínky, zvažte další možnosti..

Doručení protokolu na serveru SQL

  • Dostupné v edicích: Standardní, web, podnik
  • Funguje na úrovni: Databáze
  • Verze serveru SQL: SQL Server 2005 a novější

Technologie zasílání protokolů umožňuje automaticky odesílat záložní kopie protokolů transakcí ze zdrojové databáze do jedné nebo více databází příjemců a poté je obnovit do databází příjemců. Volitelně může existovat třetí server, který bude vykonávat roli monitorovací služby - ke sledování provádění záloh a obnovení protokolů.

Monitorování a diagnostika serveru SQL popsané v samostatném článku.

Po nastavení přepravy protokolu se vytvoří úlohy. Princip činnosti je následující:

  1. První úkol je zodpovědný za zálohování protokolu transakcí na primárním serveru
  2. Druhý úkol je zodpovědný za distribuci zálohy na všechny přijímající servery
  3. Třetí úloha obnoví protokoly do všech databází příjemců. Obnovení je k dispozici v režimu bez obnovy nebo v pohotovostním režimu.

Jedná se o jednodušší technologii, pokud jde o zrcadlení a vždy zapnuto. Přeprava protokolu by měla být použita, když:

  • Rozdíl dat mezi primárním a cílovým serverem je přijatelný. Standardní plán plnění úkolů je každých 15 minut. Můžete dát méně, ale musíte zvážit rychlost přenosu dat v síti a čas na obnovení protokolů.
  • Chcete získat přístup k databázím příjemců pro přístup ke čtení. To je možné, když je režim obnovy nastaven do pohotovostního režimu. Ale mějte na paměti, že k databázi máte přístup pouze mezi obnovením protokolu.

Replikace v Microsoft SQL Server: Přehled metod

  • Dostupné v edicích: Standard a Web - Omezené, Enterprise
  • Funguje na úrovni: Objekt databáze
  • Verze serveru SQL: SQL Server 2000 a novější
Podívejte se na přehled vydání serveru SQL a licenčních funkcí..

Existují různé typy replikace:

  • Transakční replikace
  • Transakční replikace typu peer-to-peer
  • Replikace snímku
  • Sloučit replikaci

Na základě transakční replikace existují další 2 topologie:

  • Obousměrná transakční replikace
  • Obnovitelné předplatné pro transakční replikaci (funkce podporována ve verzích SQL Server 2012 až 2016)

Replikace může být použita pro různé účely, ale používá se hlavně k vyložení OLTP serverů pomocí vybraných dotazů a pro vysokou dostupnost. Přestože společnost Microsoft neumisťuje replikaci jako prostředek k dosažení vysoké dostupnosti, může tuto roli dobře plnit..

Poznámka: V modelu replikace serveru SQL jsou 3 typy serverů:

  • Vydavatel (vydavatel) - server, který publikuje články
  • Distributor (distributor) - server, který distribuuje články na předplacené servery
  • Předplatitel (předplatitel) - server, který přijímá distribuované články

Změny, které se odehrají ve vybraných objektech vydavatele, se nejprve odešlou distributorovi a distributor tyto změny odešle odběratelům.

Zvažte 4 základní typy replikace

Transakční replikace

Tento typ replikace se používá pro replikaci dat „téměř v reálném čase“, tj. Data o předplatitelích se objevují téměř okamžitě, přičemž se bere v úvahu doba kopírování dat v síti..

Transakce od vydavatele jsou zasílány distributorovi, distributor tyto transakce zasílá odběratelům. Distributor může předat data odběratelům okamžitě, nebo podle konkrétního plánu. Subjekty předplatitele, které se účastní replikace, by měly být použity pouze pro přístup pouze pro čtení, jinak budou data nekonzistentní a dojde ke konfliktu.

Transakční replikace typu Peer-to-Peer

Transakční replikace Peer-to-Peer nebo Peer-to-Peer je podobná normální transakční replikaci, ale může pracovat s více servery najednou.

Replikace typu peer-to-peer lze nazvat replikací master-master (pro normální transakční replikaci by to byla master-slave). Zvažte diagram z dokumentace společnosti Microsoft

Každá instance serveru SQL, který se účastní replikace typu peer-to-peer, může zpracovat operace čtení a zápisu. Také v tomto typu replikace je zajištěn mechanismus řešení konfliktů, když stejná operace dorazí na několik serverů současně, například požadavek na aktualizaci. Ale i s ohledem na tento mechanismus se nedoporučuje zapisovat data na několik kopií současně..

Tento typ replikace lze použít pro vyrovnávání zatížení, včetně operací aktualizace / vložení / odstranění..

Replikace snímku

Jedná se o zvláštní typ replikace, který nesleduje změny dat u vydavatele, ale podle určitého plánu vytvoří snímek a odešle jej odběratelům (prostřednictvím distributora)..

Replikace snímku nepoužívá všechny transakce postupně, jako je tomu v případě doručení protokolu a transakční replikace, ale kopíruje data prostřednictvím bcp.

Tento typ replikace se vyplatí použít, když:

  • Data se zřídka mění
  • Povolený rozdíl dat mezi vydavatelem a odběratelem
  • Velký objem změn v krátkém časovém období

Sloučit replikaci

Mechanismus je podobný transakční replikaci typu peer-to-peer, existuje však několik důležitých rozdílů:

  • Sloučená replikace může mít pouze jednoho vydavatele a několik odběratelů, když jsou stejně jako v replikaci typu peer-to-peer všechny instance stejné (oba jsou vydavatelé i odběrateli současně)
  • V sloučené replikaci mohou odběratelé přijímat různá data, když mají všechny servery stejná data v replikaci peer-to-peer
  • Sloučit replikaci může vyřešit konflikty, peer-to-peer - ne
  • Replikace typu peer-to-peer je k dispozici pouze v edici Enterprise

Sloučená replikace by měla být použita, když potřebujete konsolidovat data..

Obousměrné transakční replikace a upgradované předplatné transakčních replikací

Obousměrný transakční je topologie, kde je normální replikace transakcí nakonfigurována tak, aby replikovala stejná data. Parametr @loopback_detection v sp_addsubscription musí být nastaven na PRAVDA

Předplatné obnovitelné transakční replikace je podobné sloučení replikace. Tato technologie se stala velmi rychle zastaralou, protože se prakticky nepoužila a nahrazuje ji jiné typy replikace..

Skupiny vždy k dispozici na serveru SQL

  • Dostupné v edicích: Standardní (s omezeními), Podnik (
  • Funguje na úrovni: Databáze
  • Verze serveru SQL: SQL Server 2012 a novější

Ve verzi SQL Server 2012 se objevily skupiny vždy k dispozici, což je alternativa (i když pravděpodobnější vývoj) technologie zrcadlení databáze..

Skupiny vždy k dispozici jsou založeny na Cluster převzetí služeb při selhání systému Windows Server, ale od verze 2017 bylo možné používat Vždy zapnuto bez WSFC. Vždy zapnuto je podobné zrcadlení databáze (synchronní a asynchronní režimy), ale může existovat až 8 sekundárních replik. Always On podporuje automatické převzetí služeb při selhání (tj. Když dojde k selhání primární instance clusteru, WSCF vybere novou primární repliku a přesměruje na ni požadavky na zápis).

Každá instance ve skupině dostupnosti může být buď primární (hlavní) nebo sekundární (sekundární). Sekundární repliky mohou být buď v jen pro čtení, buď v Žádné zotavení. Každá instance ve skupině dostupnosti obsahuje kopie databází skupiny dostupnosti. Mějte na paměti, že v synchronním režimu bude rychlost transakcí záviset na „nejpomalejším“ členovi skupiny dostupnosti.

V základním nastavení je vždy zapnuto, po instalaci serveru SQL je vše možné nakonfigurovat pomocí průvodce (WSFC prostřednictvím modulu snap-in ve Windows a samotné přístupové skupiny prostřednictvím průvodce v SSMS). Ale s velkým počtem serverů a komplexní infrastrukturou budete muset dokumentaci prostudovat.

Při zrcadlení se doporučuje používat vždy zapnuto ve stejných situacích nebo pokud potřebujete vyvážení zátěže vybraných dotazů. Doporučuje se také provádět zálohy ze sekundárních replik, což je další aplikace skupin dostupnosti.

Další informace o skupinách Always On Availability Groups na serveru SQL naleznete v tématu.

SQL Server poskytuje širokou škálu řešení dostupnosti dat. Pokud máte edici Enterprise a SQL Server 2012 (a vyšší), je lepší použít Always On. Replikaci lze použít k odlehčení systémů OLTP pomocí vybraných dotazů a pro částečnou redundanci (i když replikace typu peer-to-peer je umístěna jako úplný prostředek redundance dat). Odeslání protokolu transakcí a zrcadlení databáze lze použít ve starších verzích serveru SQL, nebo pokud vás podmínky k použití těchto technologií nutí..

Mějte na paměti, že všechny výše uvedené technologie vysoké dostupnosti na serveru SQL nenahrazují zálohy..