sql >> Database >  >> RDS >> MariaDB

Wat is MariaDB TX? Hoe de nieuwe MariaDB MySQL-vork te beheren!

Je hebt misschien gehoord over MariaDB TX en je hebt je misschien afgevraagd wat het is?

Is er een verschil tussen het en MariaDB Server 10.3?

In deze blogpost willen we je een overzicht geven van de MariaDB TX en waar het allemaal over gaat.

In het kort:MariaDB TX is een abonnement waarin MariaDB meerdere aanbiedingen combineert om een ​​volledig functionele transactiedatabase te bouwen.

De database die in MariaDB TX wordt gebruikt, is MariaDB Server 10.3, die ook Galera Cluster bevat voor synchrone multi-masterreplicatie. Voor de proxylaag gebruikt MariaDB TX MaxScale.

Laten we ons een beetje concentreren op die twee belangrijkste aanbiedingen en hun functies bespreken.

MariaDB Server 10.3


Het evolueerde naar een feature-complete fork, die nieuwe functionaliteiten implementeert bovenop wat Oracle in de upstream implementeert. MariaDB 10.3 wordt geleverd met een lijst met bedrijfsgerichte functies. MariaDB Server 10.3 is niet langer een vervanging voor MySQL.

Oracle-compatibiliteit

MariaDB 10.3 wordt geleverd met SQL_MODE=ORACLE, wat de compatibiliteit verbetert voor de SQL-syntaxis die wordt gebruikt in MariaDB 10.3 met Oracle PL/SQL. De volgende compatibiliteitsfuncties zijn opgenomen in de MariaDB TX:

  • Opgeslagen procedureparameters
  • Constructie van niet-ANSI opgeslagen procedure
  • Cursorsyntaxis
  • Lussyntaxis
  • Variabele declaratie
  • Overerving van gegevenstype (%TYPE, %ROWTYPE)
  • Uitzonderingen in PL/SQL-stijl
  • Synoniemen voor Basic SQL Types (VARCHAR2, NUMBER, …)

Dit zorgt voor een eenvoudigere migratie van uw applicaties van Oracle-databases naar MariaDB TX.

Tot 80% van de Oracle PL/SQL-code kan nu op MariaDB worden uitgevoerd zonder dat er wijzigingen hoeven te worden aangebracht; dit heeft ernstige gevolgen voor de algehele leercurve en vermindert de tijd die nodig is om de oude code te herschrijven om op MariaDB TX te draaien.

Wat ook belangrijk is om in gedachten te houden, MariaDB TX wordt geleverd met een ondersteuningspakket en u krijgt toegang tot consultants die best practices voor migratie met u kunnen delen of u zelfs rechtstreeks kunnen helpen bij het planningsproces om de overgang nog minder lastig te maken.

Verbeteringen in SQL

MariaDB TX brengt ons ook verbeteringen in de SQL-syntaxis, inclusief nieuwe functies die erg handig zouden moeten zijn voor ontwikkelaars, zoals vensterfuncties of algemene tabeluitdrukkingen. Ook tijdelijke subclauses kunnen erg handig zijn, omdat ze toegang geven tot meerdere versies van een bepaalde rij op basis van een specifiek tijdstip.

Alle functies worden hieronder vermeld:

  • Tijdelijke bijzinnen (bijv. ALS OF)
  • Door de gebruiker gedefinieerde verzamelfuncties
  • Geordende verzamelingsfuncties
  • INTERSECTEN/BEHALVE
  • Tabelwaardeconstructors
  • Time-out DDL/SELECT-vergrendeling
  • Veelvoorkomende tabeluitdrukkingen
  • Vensterfuncties
  • JSON-functies

Externe opslagengines

De standaardengine voor MariaDB is InnoDB, een transactionele, allround opslagengine.

Het is geschikt voor de meeste workloads en het werkt uitstekend voor OLTP-workloads (Online Transaction Processing). Het is echter niet de enige opslagengine die beschikbaar is in MariaDB TX. U krijgt toegang tot de Spider-engine, die kan worden gebruikt om uw gegevens over meerdere MariaDB-instanties te verdelen, terwijl de ondersteuning voor XA-transacties behouden blijft.

Een andere opslagengine die u kunt gebruiken, is MyRocks, een engine die is geoptimaliseerd voor het verminderen van opslag en schrijfversterking. Battle-getest op Facebook, LSN-gebaseerd, het is perfect geschikt voor het opslaan van grote hoeveelheden gegevens op SSD-opslag, waardoor de kosten worden verlaagd door sterke compressie te implementeren en door het aantal schrijfbewerkingen dat nodig is voor een bepaalde workload te verminderen (en dus de SSD-slijtage te minimaliseren ).

Galera-cluster

MariaDB TX geeft u eenvoudig toegang tot de Galera Cluster, een vrijwel synchrone multi-master replicatie. Galera Cluster kan worden gebruikt om zeer beschikbare, WAN-omspannende clusters te ontwerpen.

Galera Cluster is gebouwd bovenop het quorum-aware protocol, dat ervoor zorgt dat de netwerkpartitionering geen probleem zal zijn en dat het gespleten brein geen probleem meer zou moeten zijn. Galera Cluster biedt een manier om nieuwe of defecte nodes automatisch in te richten, waardoor de beheersvoetafdruk wordt verkleind.

Operationele kenmerken

MariaDB TX biedt ook enkele functies met betrekking tot de operationele taken. Instant ADD COLUMN helpt de impact van een van de meest voorkomende schemawijzigingen te verminderen. Onzichtbare kolommen helpen om de compatibiliteit tussen oude en nieuwe code te behouden. Indexen op virtuele kolommen zullen de prestaties verbeteren.

Mariaback-up

MariaDB TX implementeert data-at-rest-codering, waaronder codering van binaire logboeken. Om ervoor te zorgen dat MariaDB TX-gebruikers kunnen profiteren van lock-free back-ups, is Mariabackup gemaakt. Het is een verbeterde vork van Xtrabackup, die niet correct werkte met MariaDB TX-coderingsfuncties. Nu kunt u genieten van uw hot, fysieke back-ups met Mariabackup terwijl uw gegevens veilig worden versleuteld.

MariaDB MaxScale

Naast MariaDB 10.3 wordt MariaDB TX geleverd met MaxScale 2.3, een SQL-bewuste proxy die kan worden gebruikt om omgevingen met een hoge beschikbaarheid te bouwen. Het wordt geleverd met tal van functies en we willen de belangrijkste hier graag bespreken.

Automatische failover

MaxScale kan worden gebruikt om de status van de master MariaDB-node te volgen en, als deze faalt, een snelle, automatische failover uit te voeren. Geautomatiseerde failover is cruciaal bij het opbouwen van een zeer beschikbare oplossing die snel kan herstellen van de storing.

Lezen-schrijven splitsen

Splitsen van lezen en schrijven is een essentiële functie om leesschaling mogelijk te maken. Het is voldoende voor de applicatie om verbinding te maken met de MaxScale en het zal de topologie detecteren, bepalen welke MariaDB als master fungeert en welke als slave. Het zal dan het verkeer dienovereenkomstig omleiden. SELECT-query's worden naar de slaves gestuurd, schrijfacties worden naar de master gestuurd. Alles gebeurt automatisch, de topologie wordt voortdurend gecontroleerd en mocht er een failover plaatsvinden, dan wordt het verkeer omgeleid op basis van de wijziging.

Transparante queryrouting

MaxScale, dat het toegangspunt is van het verkeer naar MariaDB TX, kan worden gebruikt om een ​​lees-schrijfsplitsing uit te voeren. Soms is dit nog steeds niet genoeg en zou het geweldig zijn om een ​​manier te hebben om te controleren waar een bepaalde vraag naartoe moet worden gestuurd. Dit is mogelijk in MaxScale - u kunt de zoekopdrachten matchen met behulp van reguliere expressies en vervolgens beslissen of ze naar de master of naar slaves moeten worden verzonden. Dit kan helpen in bepaalde gevallen waarin de SELECT-query moet worden uitgevoerd op de master vanwege lees-na-schrijfproblemen of omdat deze de meest actuele weergave van de dataset moet hebben.

Caching van queryresultaten

Om de prestaties te verbeteren, is het cachen van query's een must. Query-cache die beschikbaar is in MariaDB werkt gewoon niet in een omgeving met veel gelijktijdigheid, omdat het serialisatie van de query's afdwingt, waardoor de prestaties ernstig afnemen, zelfs voor alleen-lezen workloads. Het gebruik van een externe oplossing voor cache is niet altijd haalbaar:je krijgt tenslotte weer een andere database om te onderhouden, te beveiligen en gezond te houden. Het is misschien beter om MaxScale als cache te gebruiken, ervan uitgaande dat je het al voor andere functionaliteit gebruikt.

Opvragen blokkeren

Soms hebben databases last van een inefficiënte query, waardoor het systeem zwaar wordt belast. Het kan zijn dat het herschrijven van die query veel te lang zou duren (iemand zou het moeten herschrijven, de wijziging op staging moeten testen en dan uiteindelijk in productie moeten nemen), een tijd die je niet hebt. MaxScale kan u hierbij helpen met functies zoals het blokkeren van query's, waarmee u in feite kunt voorkomen dat een bepaalde query de database bereikt. Deze functie kan ook worden gebruikt om een ​​SQL-firewall te bouwen - verwijder alle zoekopdrachten die overeenkomen met patronen die verwijzen naar SQL-injectie of andere, potentieel gevaarlijke en kwaadaardige activiteiten.

Zoals u kunt zien, wordt MariaDB TX geleverd met een lijst met functies en software die is ontworpen om samen te werken en een zeer beschikbare, schaalbare database te bouwen voor verwerking van transactiegegevens.

Enterprise Monitoring &Management voor MariaDB TX

ClusterControl ondersteunt MariaDB TX volledig. U kunt zowel MariaDB Server 10.3 als MaxScale 2.3 eenvoudig implementeren. ClusterControl ondersteunt zowel MariaDB-replicatie-instellingen als MariaDB Galera Cluster.

Zolang u SSH-connectiviteit hebt van uw ClusterControl-instantie naar de knooppunten waarop u MariaDB TX wilt implementeren, kunt u dit in slechts een paar klikken doen.

Eerst moet u definiëren hoe ClusterControl de MariaDB TX-knooppunten zal bereiken.

Kies vervolgens MariaDB als leverancier en ga voor een van de ondersteunde versies. Geef het MariaDB-rootwachtwoord door.

Bepaal ten slotte de topologie. Je kunt MariaDB TX inzetten in een master - master, active - standby setup met extra slaves. Replicatie gebruikt MariaDB GTID.

Voor MariaDB Galera Cluster is de eerste stap precies hetzelfde, dan hoeft u alleen de MariaDB als leverancier te kiezen, de versie te bepalen en knooppunten in de MariaDB Galera Cluster te definiëren:

Met de geïmplementeerde clusters kunt u de kracht van ClusterControl gebruiken om uw MariaDB TX-clusters te bewaken en te beheren.

Het toevoegen van MaxScale-load balancers is bijvoorbeeld slechts een paar klikken verwijderd:

Eenmaal geïmplementeerd, kunt u uw MaxScale beheren met ClusterControl:

U kunt uw Galera-cluster ook schalen door nieuwe Galera-knooppunten of asynchrone replicatieslaves toe te voegen. U kunt slaves of vertraagde slaves toevoegen aan uw replicatie-setups, of topologiewijzigingen uitvoeren door een slave tot master te promoveren en de rest van de setup opnieuw tot slaaf te maken. ClusterControl bewaakt het cluster en probeert defecte knooppunten of clusters te herstellen als er zich een incident voordoet. Voor back-ups kan ClusterControl u helpen een back-upschema te definiëren met zowel mysqldump als Mariabackup, zodat u gemakkelijk kunt profiteren van de versleutelingsfuncties van MariaDB TX.

Voor het monitoring- en trendinggedeelte kan ClusterControl ofwel in een agentloze modus worden gebruikt:

Of het kan samen met Prometheus en agenten worden gebruikt om nog beter inzicht te geven in wat er gebeurt in het MariaDB TX-cluster.

We hopen dat deze inleidende blogpost u heeft geholpen te begrijpen wat MariaDB TX is en hoe ClusterControl u kan helpen dit te beheren.


  1. Nog een argument voor opgeslagen procedures

  2. Geavanceerde Oracle JDeveloper-functies gebruiken voor MySQL-databases

  3. De Percona Audit Log-plug-in gebruiken voor databasebeveiliging

  4. Wat is een databasequery?