sql >> Databáze >  >> RDS >> Sqlserver

Pochopení skupiny dostupnosti Always ON mezi instancemi SQL Serveru na bázi Linuxu. Část 1

SQL Server Always ON Availability Group je řešení určené k dosažení vysoké dostupnosti a obnovy po havárii pro databáze SQL Server. Tuto funkci můžeme nakonfigurovat mezi instalacemi SQL Serveru se systémem Windows, instalacemi SQL Serveru se systémem Linux a dokonce i mezi instalacemi systému Linux a SQL Server se systémem Windows dohromady.

Skupiny dostupnosti jsou úzce integrovány s klastrovými technologiemi ve formě automatického převzetí služeb při selhání a ochrany dat replikací dat do jejich příslušných sekundárních replik. Není však vždy povinné mít správce klastrových prostředků pro konfiguraci skupin dostupnosti.

Ke konfiguraci skupin dostupnosti SQL Serveru potřebujeme WSFCWindows Server Failover Cluster technologie pro Windows -založené instalace SQL Server a PACEMAKER pro Linux -založené instalace SQL Server.

PACEMAKER je open-source správce klastrových prostředků, který můžeme použít ke správě zdrojů a zajištění dostupnosti systému, pokud by na systémech Linux došlo k jakémukoli selhání.

WSFC je produkt společnosti Microsoft vyvinutý pro podporu požadavků clusterů založených na systému Windows.

Když se podíváte na nakonfigurované skupiny dostupnosti v SQL Serveru pro oba typy OS, zdá se to podobné v SQL Server Management Studio.

Tento článek však vysvětluje skupiny dostupnosti mezi SQL serverem založeným na Ubuntu Linux instalace pomocí PACEMAKER cluster technologie, takže budu uvažovat pouze o této konfiguraci.

Konfigurace typu clusteru

Jak jsem uvedl výše, máme tři varianty pro konfiguraci skupin dostupnosti pro SQL Server v závislosti na OS:

  • mezi instalacemi SQL Serveru se systémem Windows;
  • mezi instalacemi SQL Serveru založeného na Linuxu;
  • mezi smíšeným typem instalací SQL Serveru se systémem Windows a Linux.

Společnost Microsoft představila Cluster_type nastavení konfigurace pro identifikaci a konfiguraci vhodné technologie clusteru pro skupiny dostupnosti. Je to konfigurační položka, která definuje, jaký typ clusterové technologie používáme pro skupiny dostupnosti, bez ohledu na to, na kterém OS je instance SQL Serveru založena.

Stávající konfiguraci typu Cluster můžete načíst a ověřit pomocí SQL Server dynamického zobrazení správy (DMV) sys.availability_groups . Existují dva sloupce s názvem cluster_type a cluster_type_desc . V těchto sloupcích můžeme definovat konfiguraci typu clusteru nastavení skupiny dostupnosti.

Toto konfigurační nastavení má 3 hodnoty pro splnění požadavků na technologii clusteru pro každou variantu:

WSFC .Pokud máte instalace SQL Serveru se systémem Windows, musíte použít možnost WSFC (klastr převzetí služeb při selhání serveru Windows). Není podporován pro instalace SQL Serveru založené na Linuxu.

EXTERNÍ . Pokud konfigurujete skupiny dostupnosti mezi instalacemi SQL Serveru založeného na Linuxu, musíte použít správce clusteru PACEMAKER a zvolit EXTERNAL shluk typ . Režim převzetí služeb při selhání musí být také EXTERNÍ (ve WSFC bude automatický).

ŽÁDNÉ . Pokud nechcete pro své skupiny dostupnosti používat žádnou technologii shlukování, vyberte ŽÁDNÉ . Tato možnost je použitelná, pokud chcete nakonfigurovat skupiny dostupnosti mezi instancemi systému Linux a SQL Server se systémem Windows. I když jste pro svůj systém nakonfigurovali klastrování, jakmile nastavíte hodnotu typu klastru na NONE, skupiny dostupnosti nebudou používat technologii klastru. Režim převzetí služeb při selhání pro typ clusteru NONE je vždy Ruční .

Nové nastavení:Požadované synchronizované sekundární servery k potvrzení

Počínaje verzí SQL Server 2017 společnost Microsoft zavedla nové nastavení nazvané required_synchronized_secondaries_to_commit . Aktivuje možnost automatického převzetí služeb při selhání, pokud jste pro konfiguraci clusteru PACEMAKER nakonfigurovali typ clusteru jako EXTERNÍ.

Hodnota tohoto nastavení je ve výchozím nastavení nastavena při konfiguraci agenta prostředku SQL Server mssql-server-ha a vytvořte konfiguraci clusteru.

Také můžete ručně upravit hodnotu pro vaše požadavky spuštěním níže uvedeného příkazu:

--Run below commands to change value for setting required_synchronized_secondaries_to_commit
--AGResourceName is the name of the resource configured for the Availability group
sudo pcs resource update <AGResourceName> required_synchronized_secondaries_to_commit=<Value>

Poznámka:Výše ​​uvedené nastavení můžeme změnit pouze prostřednictvím Pacemaker na Linuxu. Není možné jej upravit pomocí příkazu T-SQL pro nasazení na bázi Linuxu. U nasazení na bázi Windows však můžeme toto nastavení změnit pomocí příkazu T-SQL.

Níže jsou uvedeny možné hodnoty pro required_synchronized_secondaries_to_commit

0 – To znamená, že sekundární repliky není třeba synchronizovat s příslušnou primární replikou. Nepodporuje tedy automatické převzetí služeb při selhání. Pokud dojde k výpadku primární repliky, musíte převzetí služeb při selhání spustit ručně. Důležité:Pokud zvolíte tuto hodnotu pro konfiguraci, existuje možnost ztráty dat.

1 – To znamená, že alespoň jedna sekundární replika musí být v synchronizovaném stavu, aby bylo dosaženo automatického převzetí služeb při selhání.

2 – To znamená, že obě sekundární repliky musí být synchronizovány s primární replikou. Je podporováno automatické převzetí služeb při selhání.

Repliky pro účast ve skupině dostupnosti

Počet replik, které se mohou zúčastnit skupiny dostupnosti, závisí na nainstalované edici SQL Server.

  • SQL Server Standardní edice podporuje pouze dvouuzlovou repliku pro skupinu dostupnosti spolu s další replikou pouze pro konfiguraci.
  • SQL Server Enterprise edice podporuje až devět repliky – jedna primární a osm sekundárních replik.

Protože SQL Server Standard Edition podporuje pouze dvě repliky (jedna primární replika a jedna sekundární replika), společnost Microsoft představila nový koncept nazvaný replika pouze pro konfiguraci v SQL Server 2017 CU1 k dosažení automatického převzetí služeb při selhání u serverů SQL běžících na systémech Linux.

Existují dvě možné možnosti návrhu:

  • Tři synchronní repliky. Tuto konfiguraci lze nasadit pouze s edicí SQL Server Enterprise. K dispozici budou 3 kopie vašich databází dostupnosti. Tato architektura umožňuje všechny 3 funkce škálování čtení, vysokou dostupnost a ochranu dat.
  • Dvě synchronní repliky a replika pouze pro konfiguraci. Tento návrh můžete nakonfigurovat také pomocí edice SQL Server Standard, se dvěma synchronními replikami na edici SQL Server Standard a 3 replikami na edici SQL Server Express, která funguje jako replika pouze pro konfiguraci. Jedná se o cenově výhodný návrh, který podporuje vysokou dostupnost s automatickým převzetím služeb při selhání a ochranou databáze.

Dvouuzlová replika

Konfigurace replik se dvěma uzly for Availability Groups je velmi oblíbená možnost nasazení pro zajištění vysoké dostupnosti databází SQL Server. Automatického převzetí služeb při selhání dosahujeme pomocí technologie Windows Server Failover Cluster a svědectví o sdílení souborů v nasazeních SQL Serveru se systémem Windows.

Sdílení souborů se obecně používá na dalším uzlu ve WSFC k poskytování konfigurace kvora pro konfigurace replik se dvěma uzly. WSFC synchronizuje všechna metadata konfigurace s replikami a na třetím uzlu nebo svědectví sdílení souborů pro hladké převzetí služeb při selhání. Veškeré rozhodování o převzetí služeb při selhání pro skupinu dostupnosti SQL Serveru se systémem Windows probíhá na vrstvě WSFC.

Pokud chceme dosáhnout automatického převzetí služeb při selhání pro nasazení skupiny SQL Server Availability Group na bázi Linuxu, výše uvedená konfigurace nebude fungovat. Je to proto, že WSFC lze použít pouze pro instalace SQL Serveru se systémem Windows.

Aby společnost Microsoft vyřešila toto omezení a umožnila automatické převzetí služeb při selhání pro nasazení dvou replik na bázi Linuxu, představila nový koncept.

Replika pouze pro konfiguraci

Replika pouze pro konfiguraci je možnost, kdy na třetí uzel nainstalujeme další instanci serveru SQL. Tento uzel bude fungovat jako pamětní server pro konfiguraci dvouuzlových replik, aby podporoval automatické převzetí služeb při selhání. Můžeme vytvořit jednu repliku pouze pro konfiguraci na skupinu dostupnosti .

U instancí SQL Serveru založených na Linuxu, kde používáme typ clusteru jako EXTERNÍ pro PACEMAKER, arbitráž pro převzetí služeb při selhání nefunguje na vrstvě clusteru, jako je WSFC. Veškeré rozhodování o převzetí služeb při selhání probíhá na vrstvě SQL Server, protože všechna metadata konfigurace skupiny dostupnosti jsou uložena v hlavních databázích každé repliky.

Společnost Microsoft představila koncept repliky pouze pro konfiguraci pro zpracování kvora pro skupiny dostupnosti SQL Serveru založené na Linuxu. Tento koncept nehostuje žádné uživatelské databáze, které by se mohly účastnit skupiny dostupnosti. Ukládá všechny konfigurační informace skupiny dostupnosti do hlavní databáze, aby bylo zajištěno, že veškerá arbitráž při převzetí služeb při selhání proběhne hladce.

Pro repliku pouze pro konfiguraci můžete použít jakoukoli edici SQL Server. Dokonce i edice SQL Server Express bude vyhovovat, abyste ušetřili náklady na licenci na třetí repliku. Pamatujte, že replika pouze pro konfiguraci nebude hostitelem žádné databáze v rámci skupiny dostupnosti. Budete tak mít pouze dvě kopie databází ve skupině dostupnosti.

Ve výchozím nastavení required_synchronized_secondaries_to_commit je nastaveno na 0 když používáme repliku pouze pro konfiguraci. V případě potřeby můžeme tuto hodnotu upravit ručně na 1.

Podívejte se na návrhové schéma dvouuzlové synchronní repliky a repliky pouze pro konfiguraci, abyste dosáhli automatického převzetí služeb při selhání a ochrany dat.

Můžeme vidět, že existují 3 virtuální počítače pojmenované AOAGVM1, AOAGVM2 a AOAGVM3. Všechny běží na systému Ubuntu Linux a SQL Server je nakonfigurován na všech třech systémech Linux. Databáze dostupnosti jsou hostovány na AOAGVM1 a AOAGVM2.

AOAGVM1 funguje jako primární replika, zatímco AOAGVM2 je sekundární replika. AOAGVM3 slouží jako replika pouze pro konfiguraci, což je edice SQL Server Express. Na této třetí replice nejsou hostovány žádné uživatelské databáze.

Klastr Pacemaker byl nakonfigurován mezi všemi třemi uzly tak, aby podporoval technologii clusteru pro konfiguraci skupiny dostupnosti založené na Linuxu.

Chcete-li nakonfigurovat nebo implementovat výše uvedený návrh, musíme provést následující kroky:

  1. Nainstalujte SQL Server na tři systémy Ubuntu (edice SQL Server Express bude vyhovovat pouze pro konfigurační repliky).
  2. Nakonfigurujte skupiny dostupnosti mezi třemi uzly.
  3. Nakonfigurujte klastr PACEMAKER mezi třemi uzly.
  4. Přidat nebo integrovat skupinu dostupnosti jako prostředek do skupiny clusteru.

Podívejte se na související článek a dokončete krok 1 (instalace instancí SQL Server na tři uzly).

Zůstaňte naladěni na můj další článek, kde vysvětlím proces implementace výše uvedeného návrhu krok za krokem. Naším cílem bude dosáhnout automatického převzetí služeb při selhání a ochrany dat pomocí 2uzlové synchronní repliky a repliky pouze pro konfiguraci.

Rádi si vyslechneme vaše názory a praktické rady k této záležitosti. Neváhejte je sdílet v sekci Komentáře.


  1. Nástroj LINQ for Java

  2. Proč je 1899-12-30 nulové datum v Access / SQL Server místo 12/31?

  3. Vraťte hledaná data ze sqlite

  4. Jak importovat databázi SQL Server do Accessu 2016