sql >> Databáze >  >> RDS >> MariaDB

Nasazení replikace MariaDB pro vysokou dostupnost

MariaDB Server nabízí asynchronní a synchronní replikaci. Může být nastaven tak, aby měl replikaci z více zdrojů nebo s nastavením pro více hlavních stanic.

U aplikací náročných na čtení a zápis je běžné nastavení master-slave, ale může se lišit v závislosti na základním zásobníku potřebném k vytvoření vysoce dostupného databázového prostředí.

Nastavení replikace master-slave nemusí uspokojit vaše potřeby, zejména v produkčním prostředí. Samotný server MariaDB (nastavení master-slave) nestačí k zajištění vysoké dostupnosti, protože stále má jeden bod selhání (SPOF).

MariaDB představila podnikový produkt (platformu MariaDB), který řeší tento problém s vysokou dostupností. Zahrnuje různé komponenty:podnikovou verzi MariaDB, MariaDB ColumnStore, MaxScale a odlehčené konektory MariaDB. Ve srovnání s jinými dodavateli se stejnou nabídkou podnikového řešení by to mohla být nákladově efektivní možnost, ale ne každý potřebuje tuto úroveň složitosti.

V tomto blogu vám ukážeme, jak používat server MariaDB pomocí replikace ve vysoce dostupném prostředí s možností vybrat si z použití všech bezplatných nástrojů nebo našeho nákladově efektivního softwaru pro správu ke spuštění a monitorujte infrastrukturu serveru MariaDB.

Nastavení topologie MariaDB High-Availability

Obvyklé nastavení pro topologii master-slave se serverem MariaDB používá asynchronní nebo synchronní přístup s pouze jedním masterem, který přijímá zápisy, a poté replikuje své změny na podřízené, stejně jako níže uvedený diagram:

To ale opět neslouží k vysoké dostupnosti a má jediný bod selhání. Pokud hlavní server zemře, váš aplikační klient přestane fungovat. Nyní potřebujeme přidat do zásobníku, abychom měli mechanismus automatického přepnutí při selhání, abychom se vyhnuli SPOF, a také nabízí vyvažování zátěže pro rozdělení čtení a zápisu a způsobem cyklicky. Takže prozatím budeme mít typ topologie,

Nyní tato topologie poskytuje větší bezpečnost z hlediska SPOF. MaxScale provede rozdělení čtení a zápisu přes databázové uzly od vašeho mastera proti slave. MaxScale dělá perfektní přístup při řešení tohoto typu nastavení. MaxScale má také vestavěnou automatickou detekci. Takže jakékoli změny nastanou ve stavu vašich uzlů databáze, detekuje a podle toho bude jednat. MaxScale má možnost provést převzetí služeb při selhání nebo dokonce přepnutí. Chcete-li se dozvědět více o mechanismu převzetí služeb při selhání, přečtěte si náš předchozí blog, který se zabývá mechanismem převzetí služeb při selhání MariaDB MaxScale.

Uvědomte si, že mechanismus převzetí služeb při selhání MaxScale s MariaDB Monitor má také svá omezení. Nejlepší je použít pouze pro master-slave nastavení bez příliš komplikovaného nastavení. To znamená, že nastavení master-master není podporováno. MaxScale však nabízí více věcí. Nejenže provádí určité vyvažování zátěže, protože provádí rozdělení čtení a zápisu, ale má vestavěný SmartRouter, který odesílá dotaz nejvýkonnějšímu uzlu. Ačkoli to nepřidává funkci vysoké dostupnosti, ale pomáhá to uzlům uvíznout v provozu a vyhnout se nedostatečnému výkonu určitých databázových uzlů, což může způsobit časové limity nebo zcela nedostupný server kvůli probíhající aktivitě s vysokými nároky na zdroje. .

Jedna věc jako upozornění na používání MaxScale, používají BSL (Business Source LIcense). Před přijetím tohoto softwaru si možná budete muset přečíst FAQ.

Další možností na výběr je použití pohodlnějšího přístupu. Pro vás může být nákladově efektivní zvolit si ClusterControl a mít uprostřed proxy servery využívající HaProxy, MaxScale nebo ProxySQL, pro které lze server nakonfigurovat tak, aby od lehčí až po produkční konfiguraci, která provádí směrování dotazů, filtrování dotazů, firewall nebo zabezpečení. Viz obrázek níže:

Nyní nad nimi sedí ClusterControl. ClusterControl je nastaven s vysokou dostupností, tj. CMON HA. Alternativně lze proxy vrstvu vybrat buď z HaProxy – velmi lehká možnost na výběr, MaxScale, jak bylo zmíněno dříve, nebo ProxySQL, který má propracovanější sadu parametrů, pokud chcete větší flexibilitu a konfiguraci ideální pro vysoce škálované nastavení výroby. ClusterControl se postará o automatickou detekci z hlediska zdravotního stavu uzlů, zejména hlavního uzlu, který je hlavním uzlem pro určení, zda vyžaduje převzetí služeb při selhání nebo ne. Nyní to může být soběstačné, ale zvyšuje to náklady díky řadě uzlů potřebných k implementaci tohoto nastavení a také použití automatického přepnutí při selhání ClusterControl, které se vztahuje na naši předběžnou a podnikovou licenci. Ale na druhou stranu vám poskytuje veškerou bezpečnost, zabezpečení a sledovatelnost vaší databázové infrastruktury. Ve skutečnosti jde spíše o nízkonákladovou podnikovou implementaci ve srovnání s dostupnými řešeními na globálním trhu.

Nasazení replikace MariaDB Master-Slave pro vysokou dostupnost

Předpokládejme, že máte existující master-slave nastavení MariaDB. V tomto příkladu použijeme ClusterControl pomocí bezplatné komunitní edice, kterou si můžete nainstalovat a používat zdarma. Díky tomu je vaše práce snadná a rychlá na nastavení. Chcete-li to provést, stačí importovat váš stávající cluster MariaDB Replication. Podívejte se na náš předchozí blog o tom, jak spravovat MariaDB pomocí ClusterControl. Pro tento blog mám nejprve následující nastavení jako můj cluster replikace MariaDB, jak je vidět níže:

Nyní zde použijeme MaxScale jako alternativní řešení od platformy MariaDB, která také nabízí vysokou dostupnost. Chcete-li to provést, je velmi snadné používat ClusterControl pomocí pouhých několika kliknutí, poté můžete nastavit svůj MaxScale, který běží na vašem stávajícím clusteru MariaDB Replication. Chcete-li to provést, přejděte na Spravovat → Load Balancer → MaxScale a budete moci nastavit a poskytnout příslušné hodnoty, jak je vidět níže,

Potom stačí povolit nebo kliknout na zaškrtávací políčko a vybrat, které servery mají být přidán jako součást vašeho monitorování MaxScale. Viz níže,

Za předpokladu, že máte k přidání více než jeden uzel MaxScale, opakujte stejné kroky.

Nakonec nastavíme Keepalived, aby byly naše uzly MaxScale vždy dostupné, kdykoli je to nutné. To je velmi rychlé pomocí jednoduchých kroků pomocí ClusterControl. Opět musíte jít do Spravovat → Load Balancer, ale místo toho vyberte Keepalived

Jak jste si všimli, umístil jsem svůj Keepalived spolu s MaxScale na stejném uzlu mého otroka (192.168.10.30). Zatímco na druhé straně druhý (2.) Keepalived běží na 192.168.10.40 spolu s Maxscale na stejném hostiteli.

Výsledkem topologie je připravenost k produkci, která vám může poskytnout směrování dotazů, vysokou dostupnost a automatické přepnutí při selhání s rozsáhlým monitorováním a pozorovatelností pomocí ClusterControl. Viz níže,

Závěr

Používání replikace serveru MariaDB vám samo o sobě nenabízí vysokou dostupnost. Rozšíření a používání nástrojů třetích stran vás vybaví tak, abyste měli svůj databázový zásobník vysoce dostupný, protože se nebudete spoléhat pouze na produkty MariaDB nebo dokonce používat platformu MariaDB.

Existují způsoby, jak toho dosáhnout a spravovat to tak, aby byly nákladově efektivnější. Přesto je zde obrovský rozdíl ve využívání těchto řešení dostupných na trhu, jako je ClusterControl, protože vám poskytují rychlost, méně starostí a samozřejmě maximální pozorovatelnost díky aktuálním událostem v reálném čase, nejen zdraví. ale také události vyskytující se ve vašem databázovém clusteru.


  1. Jak vypustit nebo odstranit všechny spouštěče z databáze na serveru SQL

  2. Běžné chyby SQL Serveru

  3. Stránkování PHP a MySQL

  4. Úložiště dotazů SQL Server