Kvorum: Jak svědek ovlivňuje dostupnost databáze (zrcadlení databáze)

platí pro:SQL Server

Pokaždé, když je pro relaci zrcadlení databáze nastaven svědek, je nutné kvorum. Kvorum je relace, která existuje, když jsou dvě nebo více instancí serveru v relaci zrcadlení databáze vzájemně propojené. Kvorum obvykle zahrnuje tři vzájemně propojené instance serveru. Když je nastaven svědek, je kvorum požadováno, aby byla databáze dostupná. Navržené pro režim vysoké bezpečnosti s automatickým přepnutím zajišťuje kvóra, že databázi vlastní vždy pouze jeden partner.

Pokud se konkrétní instance serveru odpojí od zrcadlicí relace, tato instance ztratí kvorum. Pokud nejsou připojené žádné instance serveru, relace ztratí kvorum a databáze bude nedostupná. Existují tři typy kvóra:

  • Úplné kvorum zahrnuje partnery i svědka.

  • Kvorum mezi účastníkem a partnerem se skládá z účastníka a jednoho z partnerů.

  • Kvorum mezi partnery se skládá ze dvou partnerů.

Následující obrázek znázorňuje tyto typy kvora.

Kvóra: úplné; svědek a partner; oba partneři

Pokud má současný hlavní server kvorum, tento server má roli hlavního a nadále obsluhuje databázi, pokud vlastník databáze neprovede ruční převzetí služeb při selhání. Pokud hlavní server ztratí kvorum, přestane obsluhovat databázi. K automatickému převzetí služeb při selhání může dojít pouze v případě, že hlavní databáze ztratila kvorum, což zaručuje, že databázi již neobsluhuje.

Odpojená instance serveru uloží svou nejnovější roli v relaci. Odpojená instance serveru se obvykle znovu připojí k relaci, když se restartuje a znovu získá kvorum.

Důležité

Svědek by měl být nastavený jenom v případě, že máte v úmyslu používat režim vysoké bezpečnosti s automatickým přepnutím. V režimu vysokého výkonu, pro který není svědek nikdy vyžadován, důrazně doporučujeme nastavit vlastnost SVĚDEK na VYPNUTO. Informace o dopadu svědka na režim vysokého výkonu naleznete v tématu Provozní režimy zrcadlení databáze.

Kvorum v relacích režimu High-Safety

V režimu vysoké bezpečnosti umožňuje kvorum automatické převzetí při selhání tím, že poskytuje kontext, ve kterém instance serveru s arbitráží kvora určí, která partnerská instance vlastní roli hlavního. Hlavní server obsluhuje databázi, pokud má kvorum. Pokud hlavní server ztratí kvorum, zatímco synchronizovaný zrcadlový server a svědek zachovávají kvorum, dojde k automatickému převzetí služeb při selhání.

Scénáře kvora pro režim vysoké bezpečnosti jsou následující:

  • Úplné kvorum, které se skládá z partnerů i svědka.

    Obvykle se všechny tři instance serveru účastní třícestného kvoru, nazývaného úplné kvorum. S úplným kvorem hlavní a zrcadlové servery nadále plní své příslušné role (pokud nedojde k ručnímu záložnímu přepnutí).

  • Kvorum svědka a partnera, které se skládá ze svědka a jednoho z partnerů.

    Pokud dojde ke ztrátě síťového připojení mezi partnery kvůli ztrátě jednoho z partnerů, jsou možné následující případy:

    • Zrcadlový server je ztracen a hlavní server a svědek zachovají kvorum.

      V tomto případě primární server nastaví svou databázi na DISCONNECTED a spustí se zrcadlení ve stavu SUSPENDED. (Označuje se jako běží vystavená, protože databáze není aktuálně zrcadlena.) Když se zrcadlový server znovu připojí k relaci, server znovu získá kvorum jako zrcadlo a začne znovu synchronizovat svou kopii databáze.

    • Hlavní server je ztracen, a svědek a zrcadlový server si zachovají kvorum.

      V tomto případě dojde k automatickému přepnutí. Další informace naleznete v tématu provozní režimy zrcadlení databáze.

    • Všechny instance serveru ztratí kvorum, ale následně se zrcadlo a svědek znovu připojí. Databáze nebude v tomto případě obsluhována.

    Síťové připojení mezi partnery převzetí služeb při selhání se ztratí jen zřídka, zatímco oba partneři zůstanou připojení k svědkovi. V tomto případě existují dvě samostatná kvora mezi svědkem a partnerem, přičemž svědek slouží jako prostředník. Svědek informuje zrcadlový server, že primární server je stále připojený. Proto k automatickému převzetí služeb při selhání nedojde. Místo toho si zrcadlový server zachová roli zrcadla a počká, až se znovu připojí k hlavnímu serveru. Pokud fronta obnovy obsahuje záznamy protokolu v tomto okamžiku, zrcadlový server bude pokračovat v aktualizaci zrcadlové databáze. Při opětovném připojení zrcadlový server znovu synchronizuje zrcadlovou databázi.

  • Kvorum mezi partnery, které se skládá ze dvou partnerů.

    Dokud partneři zachovají kvórum, databáze zůstává ve stavu SYNCHRONIZOVANÉM a ruční převzetí služeb při selhání zůstane možné. Bez svědka není možné automatické převzetí služeb při selhání; pokud ale svědek znovu získá kvorum, relace obnoví pravidelnou operaci a automatické převzetí služeb při selhání je opět podporováno.

  • Relace ztratí kvorum.

    Pokud se všechny instance serveru od sebe odpojí, znamená to, že relace ztratila kvorum. Vzhledem k tomu, že se instance serveru znovu připojují k sobě, znovu získají kvorum mezi sebou.

    • Pokud se hlavní server znovu připojí k některé z ostatních instancí serveru, bude databáze k dispozici.

    • Pokud hlavní server zůstane odpojený, ale zrcadlo a svědek se k sobě znovu připojí, automatické převzetí služeb při selhání není možné, protože může dojít ke ztrátě dat. Databáze proto zůstane nedostupná, dokud se hlavní server znovu nepřipoví k relaci.

    • Když se všechny tři instance serveru znovu připojí, úplné kvorum se znovu obnoví a relace obnoví běžnou operaci.

Důležité

Pokud má relace kvorum mezi partnery, pokud některý z partnerů ztratí kvorum, relace ztratí kvorum. Proto pokud očekáváte, že svědek zůstane odpojený po delší dobu, doporučujeme, abyste dočasně odebrali svědka z relace. Odebráním svědka se odebere požadavek na kvórum. Pokud se zrcadlový server odpojí, může hlavní server dál obsluhovat databázi. Informace o tom, jak přidat nebo odebrat svědka, najdete v tématu Svědek pro zrcadlení databáze.

Vliv kvora na dostupnost databáze

Následující obrázek ukazuje, jak svědek a partneři spolupracují, aby zajistili, že v daném okamžiku má roli hlavního uzlu jenom jeden partner a že svou databázi může uvést do provozu online pouze aktuální hlavní server. Oba scénáře začínají s plným počtem účastníků a Partner_A v hlavní roli a Partner_B v zrcadlové roli.

Jak svědek a partneři spolupracují

Scénář 1 ukazuje, jak po selhání původního hlavního serveru (Partner_A) svědek a zrcadlo souhlasí, že hlavní server, Partner_A, již není dostupný a vytvoří kvorum. Zrcadlo, Partner_B pak předpokládá hlavní roli. Dojde k automatickému přepnutí při selhání a Partner_B připojí svou kopii databáze online. Pak Partner_B zmizí a databáze přejde do režimu offline. Později se bývalý hlavní server Partner_A znovu připojí ke svedkovi, čímž znovu získá kvorum, ale při komunikaci se svedkem Partner_A zjistí, že nemůže přivést svou kopii databáze online, protože Partner_B teď vlastní hlavní roli. Když se Partner_B znovu připojí k relaci, vrátí databázi zpátky do online režimu.

Ve scénáři 2 svědek ztratí kvorum, zatímco partneři, Partner_A a Partner_B, zachovají kvorum mezi sebou a databáze zůstane online. Partneři pak ztratí také své kvorum a databáze přejde do offline režimu. Později se hlavní server Partner_A opět připojí k serveru svědka, čímž znovu získá kvorum. Svědek potvrzuje, že Partner_A stále vlastní hlavní roli, a Partner_A vrátí databázi zpátky do online režimu.