sql >> Databáze >  >> RDS >> Mysql

Nasazení a správa MySQL NDB Cluster s ClusterControl

V ClusterControl 1.5 jsme přidali podporu pro MySQL NDB Cluster 7.5. V tomto příspěvku na blogu se podíváme na některé funkce, díky kterým je ClusterControl skvělým nástrojem pro správu clusteru MySQL NDB. Za prvé a především, protože existuje mnoho produktů s „Cluster“ v názvu, rádi bychom řekli pár slov o samotném MySQL NDB Cluster a o tom, jak se odlišuje od jiných řešení.

MySQL NDB Cluster

MySQL NDB Cluster je synchronní cluster pro MySQL bez sdíleného obsahu, založený na NDB enginu. Je to produkt s vlastním seznamem funkcí a zcela odlišný od Galera Cluster nebo MySQL InnoDB Cluster. Jedním z hlavních rozdílů je použití NDB enginu, nikoli InnoDB, což je výchozí engine pro MySQL. V NDB clusteru jsou data rozdělena mezi více datových uzlů, zatímco Galera Cluster nebo MySQL InnoDB Cluster obsahují úplnou datovou sadu na každém z uzlů. To má vážné dopady na způsob, jakým MySQL NDB Cluster zpracovává dotazy, které používají JOINy ​​a velké části datové sady.

Pokud jde o architekturu, MySQL NDB Cluster se skládá ze tří různých typů uzlů. Datové uzly ukládají data pomocí NDB motoru. Data jsou redundantně zrcadlena s až 4 replikami dat. Všimněte si, že ClusterControl nasadí 2 repliky na skupinu uzlů, protože jde o nejtestovanější a nejstabilnější konfiguraci. Uzly správy jsou určeny k řízení clusteru – z důvodů vysoké dostupnosti máte obvykle dva takové uzly. Uzly SQL se používají jako vstupní body do clusteru. Analyzují SQL, žádají data z datových uzlů a v případě potřeby agregují sady výsledků.

Funkce ClusterControl pro MySQL NDB Cluster

Nasazení

ClusterControl 1.5 podporuje nasazení MySQL NDB Cluster 7.5. Provádí se pomocí stejného průvodce nasazením jako u zbývajících typů clusterů.

V prvním kroku musíte nakonfigurovat, jak se může ClusterControl přihlásit přes SSH k hostitelům - to je standardní požadavek pro ClusterControl - je bez agenta, takže vyžaduje root SSH přístup buď přímo, k účtu root nebo přes (heslo nebo bez hesla) sudo.

V dalším kroku definujete uzly správy pro váš cluster.

Zde se musíte rozhodnout, kolik datových uzlů chcete mít. Jak jsme již uvedli, každé 2 uzly budou součástí skupiny uzlů, takže by to mělo být sudé číslo.

Nakonec se musíte rozhodnout, kolik uzlů SQL chcete nasadit do svého clusteru. Jakmile kliknete na nasadit, ClusterControl se připojí k hostitelům, nainstaluje software a nakonfiguruje všechny služby. Po chvíli byste měli vidět, že je váš cluster nasazen.

Škálování MySQL NDB Cluster

Pro MySQL NDB Cluster podporuje ClusterControl 1.5.0 škálování uzlů SQL. K úloze můžete přistupovat z rozevírací nabídky Klastrové úlohy.

Zde můžete vyplnit název hostitele uzlu, který chcete přidat, a to je vše, co potřebujete – ClusterControl se postará o zbytek.

Správa MySQL NDB Cluster

ClusterControl vám pomůže spravovat MySQL NDB Cluster. V této části bychom rádi prošli některými funkcemi správy, které máme.

Zálohy

Zálohy jsou klíčové pro každé produkční prostředí. V případě katastrofy může pouze dobrá záloha minimalizovat ztrátu dat a pomoci vám rychle se z problému zotavit. Replikace nemusí být vždy řešením, které funguje – DROP TABLE zruší tabulku na všech hostitelích v topologii. I zpožděný otrok může oddálit nevyhnutelné jen o tolik.

ClusterControl podporuje ndb zálohování pro MySQL NDB Cluster.

Můžete snadno vytvořit plán zálohování, který má být spuštěn ClusterControl.

Vrstva proxy

ClusterControl vám umožňuje nasadit plný zásobník s vysokou dostupností nad MySQL NDB Cluster. Pro vrstvu proxy podporujeme nasazení HAProxy a MaxScale.

Jak je znázorněno na obrázku výše, nasazení vypadá velmi podobně jako u ostatních typů clusterů. Musíte se rozhodnout, zda chcete použít stávající HAProxy nebo nasadit nové. Poté se musíte rozhodnout, jak jej nainstalovat - pomocí balíčků z repozitářů dostupných na uzlu nebo jej zkompilovat ze zdrojového kódu nejnovější verze.

Pokud se rozhodnete používat HAProxy, budete mít možnost nakonfigurovat vysokou dostupnost pomocí Keepalived a Virtual IP.

Postup je následující - definujete virtuální IP a rozhraní, na kterém se má vyvolat. Poté jej můžete nasadit pro každý HAProxy, který jste nainstalovali. Jeden z procesů Keepalived bude určen jako „master“ a povolí VIP na svém uzlu. Vaše aplikace se pak připojí k této konkrétní IP. Když není aktuálně aktivní HAProxy k dispozici, VIP se přesune do jiného dostupného HAProxy, čímž se obnoví připojení.

Správa obnovy

Zatímco MySQL NDB Cluster dokáže tolerovat selhání jednotlivých uzlů, je důležité na ně rychle reagovat. ClusterControl poskytuje automatickou obnovu pro všechny součásti clusteru. Bez ohledu na to, co selže (uzel správy, datový uzel nebo uzel SQL), ClusterControl je automaticky restartuje.

Monitorování MySQL NDB Cluster

Jakékoli prostředí připravené k výrobě musí být monitorováno. ClusterControl vám poskytuje řadu metrik ke sledování. Na stránce „Přehled“ zobrazujeme grafy založené na nejdůležitějších metrikách pro váš cluster. Můžete si také vytvořit své vlastní řídicí panely zobrazující další data, která by byla užitečná ve vašem prostředí.

Kromě grafů vám stránka „Přehled“ poskytuje informace o stavu clusteru na základě některých metrik clusteru MySQL NDB, jako je použitá indexová paměť, datová paměť a stav některých vyrovnávacích pamětí.

Poskytuje také sledování metrik hostitele, včetně využití CPU, RAM, disku nebo statistik sítě. Tyto grafy jsou také klíčové při vytváření pohledu na zdraví shluku.

ClusterControl vám také může pomoci zlepšit výkon vašich databází tím, že vám poskytne přístup k Query Monitor, který uchovává statistiky o vašem provozu.

Jak je vidět na obrázku výše, můžete vidět, jaké druhy dotazů běží proti vašemu clusteru, kolik dotazů daného typu, jaké jsou jejich doby provádění a celkové doby provádění. To pomáhá určit, které dotazy jsou pomalé a které z nich jsou odpovědné za většinu provozu. Poté se můžete zaměřit na dotazy, které vám mohou poskytnout největší zlepšení výkonu.


  1. Jak nastavit možnost maxrecursion pro CTE uvnitř funkce Table-Valued-Function

  2. Vytvořte sloupec „Poslední změna“ na serveru SQL Server

  3. Jak mohu použít kaskádové mazání se serverem SQL?

  4. Datový kurz:Používání funkcí okna