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

Co je MariaDB TX? Jak spravovat nový MariaDB MySQL Fork!

Možná jste slyšeli o MariaDB TX a možná vás zajímalo, co to je?

Je mezi ním a MariaDB Server 10.3 rozdíl?

V tomto příspěvku na blogu bychom vám rádi poskytli přehled MariaDB TX a o čem to všechno je.

Stručně řečeno:MariaDB TX je předplatné, ve kterém MariaDB kombinuje několik nabídek a vytváří plně funkční transakční databázi.

Databáze používaná v MariaDB TX je MariaDB Server 10.3, která také zahrnuje Galera Cluster pro synchronní multi-master replikaci. Pro vrstvu proxy MariaDB TX používá MaxScale.

Pojďme se trochu zaměřit na tyto dvě hlavní nabídky a podívat se na jejich funkce.

MariaDB Server 10.3


Vyvinul se ve fork s kompletními funkcemi, který implementuje nové funkce nad rámec toho, co Oracle implementuje v upstreamu. MariaDB 10.3 přichází se seznamem funkcí zaměřených na podniky. MariaDB Server 10.3 již nenahrazuje MySQL.

Kompatibilita s Oracle

MariaDB 10.3 přichází s SQL_MODE=ORACLE, což zlepšuje kompatibilitu pro syntaxi SQL používanou v MariaDB 10.3 s Oracle PL/SQL. MariaDB TX obsahuje následující funkce kompatibility:

  • Parametry uložené procedury
  • Konstrukt uložené procedury mimo ANSI
  • Syntaxe kurzoru
  • Smyčková syntaxe
  • Prohlášení o proměnné
  • Dědičnost typu dat (%TYPE, %ROWTYPE)
  • Výjimky stylu PL/SQL
  • Synonyma pro základní typy SQL (VARCHAR2, NUMBER, …)

To umožňuje snazší migraci vašich aplikací z databází Oracle do MariaDB TX.

Až 80 % kódu Oracle PL/SQL lze nyní spustit na MariaDB bez nutnosti zavádění změn; to vážně ovlivňuje celkovou křivku učení a zkracuje čas potřebný k přepsání staršího kódu, aby mohl běžet na MariaDB TX.

Co je také důležité mít na paměti, MariaDB TX přichází s balíčkem podpory a získáte přístup ke konzultantům, kteří s vámi budou moci sdílet osvědčené postupy migrace nebo vám dokonce přímo pomohou v procesu plánování, aby byl přechod ještě méně obtížný.

Vylepšení v SQL

MariaDB TX nám také přináší vylepšení v syntaxi SQL, včetně nových funkcí, které by měly být velmi užitečné pro vývojáře, jako jsou funkce oken nebo běžné tabulkové výrazy. Velmi užitečné by také mohly být dočasné články, protože umožňují přístup k více verzím daného řádku na základě konkrétního okamžiku.

Všechny funkce jsou uvedeny níže:

  • Dočasné články (např. AS OF)
  • Uživatelem definované agregační funkce
  • Agregační funkce podle pořadí
  • INTERSEC/EXCEPT
  • Konstruktory hodnot tabulky
  • Časový limit zámku DDL/SELECT
  • Běžné tabulkové výrazy
  • Funkce oken
  • Funkce JSON

Externí úložiště

Výchozí modul pro MariaDB je InnoDB, transakční, všestranný úložný modul.

Je vhodný pro většinu pracovních zátěží a funguje skvěle pro pracovní zátěž OLTP (Online Transaction Processing). Není to však jediný úložný modul dostupný v MariaDB TX. Získáte přístup k enginu Spider, který lze použít k rozdělení vašich dat mezi více instancí MariaDB při zachování podpory transakcí XA.

Dalším úložištěm, které můžete použít, je MyRocks, engine optimalizovaný pro redukci zesílení úložiště a zápisu. Bojově testováno na Facebooku, založené na LSN, dokonale vyhovuje pro ukládání velkých objemů dat na SSD úložiště, snižuje náklady implementací silné komprese a snížením počtu zápisů potřebných pro danou zátěž (a tím minimalizuje opotřebení SSD ).

Galera Cluster

MariaDB TX vám poskytuje snadný přístup ke Galera Cluster, virtuálně synchronní replikaci s více mastery. Galera Cluster lze použít k návrhu vysoce dostupných clusterů zahrnujících WAN.

Galera Cluster je postaven na protokolu quorum-aware, který zajišťuje, že rozdělení sítě nebude problémem a že rozdělený mozek by již neměl být problémem. Galera Cluster poskytuje prostředky pro automatické poskytování nových nebo neúspěšných uzlů, čímž snižuje nároky na správu.

Provozní funkce

MariaDB TX také poskytuje některé funkce související s provozními úkoly. Okamžité ADD COLUMN pomáhá snížit dopad jedné z nejběžnějších změn schématu. Neviditelné sloupce pomáhají udržovat kompatibilitu mezi starým a novým kódem. Indexy na virtuálních sloupcích zvýší výkon.

Mariabackup

MariaDB TX implementuje šifrování dat v klidu, které zahrnuje šifrování binárních protokolů. Aby bylo zajištěno, že uživatelé MariaDB TX mohou využívat zálohování bez zámku, byl vytvořen Mariabackup. Jde o vylepšený fork Xtrabackup, který nefungoval správně s funkcemi šifrování MariaDB TX. Nyní si můžete užívat své horké fyzické zálohy s Mariabackup a přitom mít svá data bezpečně šifrovaná.

MariaDB MaxScale

Kromě MariaDB 10.3 přichází MariaDB TX s MaxScale 2.3, proxy s podporou SQL, kterou lze použít k vytváření vysoce dostupných prostředí. Přichází s mnoha funkcemi a my bychom zde rádi probrali ty nejdůležitější z nich.

Automatické převzetí služeb při selhání

MaxScale lze použít ke sledování stavu hlavního uzlu MariaDB a v případě, že selže, provést rychlé automatické převzetí služeb při selhání. Automatizované převzetí služeb při selhání je klíčové při vytváření vysoce dostupného řešení, které se dokáže po selhání rychle zotavit.

Rozdělení čtení a zápisu

Rozdělení čtení a zápisu je kritickou funkcí umožňující škálování čtení. Stačí, aby se aplikace připojila k MaxScale a ta zjistí topologii, určí, která MariaDB funguje jako master a která jako slave. Podle toho pak nasměruje provoz. SELECT dotazy budou zaslány podřízeným, zápisy budou odeslány masteru. Vše se děje automaticky, topologie je neustále monitorována a pokud dojde k převzetí služeb při selhání, provoz bude přesměrován na základě změny.

Transparentní směrování dotazů

MaxScale, což je bod vstupu provozu do MariaDB TX, lze použít k rozdělení čtení a zápisu. Někdy to stále nestačí a bylo by skvělé mít způsob, jak řídit, kam má být daný dotaz odeslán. To je možné v MaxScale – dotazy můžete spárovat pomocí regulárních výrazů a pak se rozhodnout, zda mají být odeslány masteru nebo slave. To může pomoci v některých konkrétních případech, kdy musí být dotaz SELECT proveden na hlavním serveru kvůli problémům se čtením a zápisem nebo jen proto, že musí mít nejaktuálnější pohled na datovou sadu.

Ukládání výsledků dotazu do mezipaměti

Ke zlepšení výkonu je ukládání dotazů do mezipaměti nutností. Mezipaměť dotazů dostupná v MariaDB prostě nebude fungovat ve vysoce souběžném prostředí, protože vynucuje serializaci dotazů, což vážně snižuje výkon i pro pracovní zátěže pouze pro čtení. Použití externího řešení pro cache není vždy proveditelné:koneckonců skončíte s další databází, kterou budete udržovat, zabezpečovat a udržovat v dobrém stavu. Může být lepší použít MaxScale jako mezipaměť za předpokladu, že ji již používáte pro jiné funkce.

Blokování dotazů

Někdy databáze trpí neefektivním dotazem, který vytváří vysoké zatížení systému. Mohlo by se stát, že přepsání tohoto dotazu by zabralo příliš dlouho (někdo by ho musel přepsat, otestovat změnu ve fázi a nakonec nasadit do produkce), což je čas, který nemáte. MaxScale vám zde může pomoci s funkcemi, jako je blokování dotazů, které vám v zásadě umožňují zabránit tomu, aby se daný dotaz dostal do databáze. Tuto funkci lze také použít k sestavení SQL firewallu – zahoďte všechny dotazy, které odpovídají vzorům, které ukazují na SQL inject nebo jiné, potenciálně nebezpečné a škodlivé aktivity.

Jak můžete vidět, MariaDB TX přichází se seznamem funkcí a softwaru, který je navržen tak, aby spolupracoval a vytvořil vysoce dostupnou, škálovatelnou databázi pro zpracování transakčních dat.

Monitorování a správa podniku pro MariaDB TX

ClusterControl plně podporuje MariaDB TX. Můžete snadno nasadit jak MariaDB Server 10.3, tak MaxScale 2.3. ClusterControl podporuje nastavení replikace MariaDB a také MariaDB Galera Cluster.

Pokud máte připojení SSH z vaší instance ClusterControl k uzlům, na které chcete nasadit MariaDB TX, můžete tak učinit pouze několika kliknutími.

Nejprve musíte definovat, jak se ClusterControl dostane k uzlům MariaDB TX.

Poté vyberte MariaDB jako dodavatele a přejděte na jednu z podporovaných verzí. Předejte root heslo MariaDB.

Nakonec se rozhodněte o topologii. MariaDB TX můžete nasadit v nastavení master – master, active – standby s dalšími slave zařízeními. Replikace bude používat MariaDB GTID.

U MariaDB Galera Cluster je první krok úplně stejný, pak stačí vybrat MariaDB jako dodavatele, rozhodnout se pro verzi a definovat uzly v MariaDB Galera Cluster:

S nasazenými clustery můžete využít výkon ClusterControl k monitorování a správě vašich MariaDB TX clusterů.

Například přidání nástrojů pro vyrovnávání zatížení MaxScale je vzdáleno jen několik kliknutí:

Po nasazení můžete MaxScale spravovat pomocí ClusterControl:

Můžete také škálovat svůj cluster Galera přidáním nových uzlů Galera nebo podřízených jednotek asynchronní replikace. Můžete přidat podřízené nebo zpožděné podřízené do nastavení replikace nebo provést změny topologie povýšením podřízeného na hlavní a znovu podřízeným zbytku nastavení. ClusterControl bude monitorovat cluster a pokusí se obnovit neúspěšné uzly nebo clustery, pokud dojde k incidentu. Pro zálohování vám ClusterControl může pomoci definovat plán zálohování pomocí mysqldump a Mariabackup, takže můžete snadno využívat šifrovací funkce MariaDB TX.

Pro monitorovací a trendovou část lze ClusterControl použít buď v režimu bez agenta:

Nebo jej lze použít společně s Prometheem a agenty k poskytnutí ještě lepšího náhledu na to, co se děje v klastru MariaDB TX.

Doufáme, že vám tento úvodní příspěvek na blogu pomohl pochopit, co je MariaDB TX a jak vám ClusterControl může pomoci se správou.


  1. SQLiteStatement proveďte SELECT / INSERT / DELETE / UPDATE

  2. Jak vygenerovat rozsah dat na serveru SQL Server

  3. Jak odečíst hodiny od hodnoty data a času v MariaDB

  4. Jak vytvořit databázi ze šablony v Accessu 2016