MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Was ist MariaDB TX? So verwalten Sie den neuen MariaDB MySQL Fork!

Sie haben vielleicht schon von MariaDB TX gehört und sich gefragt, was es ist?

Gibt es einen Unterschied zu MariaDB Server 10.3?

In diesem Blogbeitrag möchten wir Ihnen einen Überblick über die MariaDB TX geben und was es damit auf sich hat.

Kurz gesagt:MariaDB TX ist ein Abonnement, in dem MariaDB mehrere Angebote kombiniert, um eine voll funktionsfähige Transaktionsdatenbank aufzubauen.

Die in MariaDB TX verwendete Datenbank ist MariaDB Server 10.3, die auch Galera Cluster für die synchrone Multi-Master-Replikation enthält. Für die Proxy-Schicht verwendet MariaDB TX MaxScale.

Konzentrieren wir uns ein wenig auf diese beiden Hauptangebote und gehen wir ihre Funktionen durch.

MariaDB-Server 10.3


Es entwickelte sich zu einem Feature-Complete-Fork, der neue Funktionalitäten zusätzlich zu dem implementiert, was Oracle im Upstream implementiert. MariaDB 10.3 enthält eine Liste von Funktionen für Unternehmen. MariaDB Server 10.3 ist kein direkter Ersatz für MySQL mehr.

Oracle-Kompatibilität

MariaDB 10.3 wird mit SQL_MODE=ORACLE geliefert, wodurch die Kompatibilität für die in MariaDB 10.3 verwendete SQL-Syntax mit Oracle PL/SQL verbessert wird. Die folgenden Kompatibilitätsfunktionen sind in MariaDB TX enthalten:

  • Parameter gespeicherter Prozeduren
  • Nicht-ANSI-Konstrukt für gespeicherte Prozeduren
  • Cursor-Syntax
  • Schleifensyntax
  • Variablendeklaration
  • Vererbung von Datentypen (%TYPE, %ROWTYPE)
  • Ausnahmen im PL/SQL-Stil
  • Synonyme für grundlegende SQL-Typen (VARCHAR2, NUMBER, …)

Dies ermöglicht eine einfachere Migration Ihrer Anwendungen von Oracle-Datenbanken in MariaDB TX.

Bis zu 80 % des Oracle PL/SQL-Codes können jetzt auf MariaDB ausgeführt werden, ohne dass Änderungen vorgenommen werden müssen; dies wirkt sich ernsthaft auf die gesamte Lernkurve aus und reduziert die Zeit, die benötigt wird, um den Legacy-Code neu zu schreiben, damit er auf MariaDB TX läuft.

Was auch wichtig zu beachten ist, MariaDB TX wird mit einem Supportpaket geliefert und Sie erhalten Zugang zu Beratern, die in der Lage sind, Best Practices für die Migration mit Ihnen zu teilen oder Ihnen sogar direkt bei der Planung zu helfen, um den Übergang noch einfacher zu gestalten.

Verbesserungen in SQL

MariaDB TX bringt uns auch Verbesserungen in der SQL-Syntax, einschließlich neuer Funktionen, die für Entwickler sehr nützlich sein sollten, wie Windows-Funktionen oder allgemeine Tabellenausdrücke. Auch zeitliche Unterklauseln könnten sehr nützlich sein, da sie den Zugriff auf mehrere Versionen einer bestimmten Zeile basierend auf einem bestimmten Zeitpunkt ermöglichen.

Alle Funktionen sind unten aufgeführt:

  • Zeitliche Nebensätze (z. B. AS OF)
  • Benutzerdefinierte Aggregatfunktionen
  • Aggregatfunktionen mit geordneter Menge
  • INTERSECT/EXCEPT
  • Tabellenwertkonstruktoren
  • Zeitüberschreitung für DDL/SELECT-Sperre
  • Allgemeine Tabellenausdrücke
  • Fensterfunktionen
  • JSON-Funktionen

Externe Speicher-Engines

Die Standard-Engine für MariaDB ist InnoDB, eine transaktionale Allround-Speicher-Engine.

Es ist für die meisten Workloads geeignet und funktioniert hervorragend für OLTP-Workloads (Online Transaction Processing). Es ist jedoch nicht die einzige Speicher-Engine, die in MariaDB TX verfügbar ist. Sie erhalten Zugriff auf die Spider-Engine, mit der Sie Ihre Daten über mehrere MariaDB-Instanzen hinweg partitionieren können, während die Unterstützung für XA-Transaktionen erhalten bleibt.

Eine weitere Speicher-Engine, die Sie verwenden können, ist MyRocks, eine Engine, die für die Reduzierung der Speicher- und Schreibverstärkung optimiert ist. In Facebook kampferprobt, LSN-basiert, eignet es sich perfekt zum Speichern großer Datenmengen auf SSD-Speicher, reduziert die Kosten durch die Implementierung einer starken Komprimierung und durch die Reduzierung der Anzahl der für eine bestimmte Arbeitslast erforderlichen Schreibvorgänge (und minimiert so den SSD-Verschleiß). ).

Galera-Cluster

MariaDB TX bietet Ihnen einfachen Zugriff auf den Galera-Cluster, eine praktisch synchrone Multi-Master-Replikation. Mit Galera Cluster lassen sich hochverfügbare, WAN-übergreifende Cluster aufbauen.

Galera Cluster baut auf dem Quorum-Aware-Protokoll auf, das sicherstellt, dass die Netzwerkpartitionierung kein Problem darstellt und das Split Brain kein Problem mehr darstellt. Galera Cluster bietet Mittel zur automatischen Bereitstellung neuer oder ausgefallener Knoten, wodurch der Verwaltungsaufwand reduziert wird.

Betriebsmerkmale

MariaDB TX bietet auch einige Funktionen im Zusammenhang mit den operativen Aufgaben. Instant ADD COLUMN hilft, die Auswirkungen einer der häufigsten Schemaänderungen zu reduzieren. Unsichtbare Spalten helfen, die Kompatibilität zwischen altem und neuem Code aufrechtzuerhalten. Indizes auf virtuellen Spalten steigern die Leistung.

Mariasicherung

MariaDB TX implementiert Data-at-Rest-Verschlüsselung, die die Verschlüsselung von Binärprotokollen umfasst. Um sicherzustellen, dass MariaDB TX-Benutzer von sperrungsfreien Backups profitieren können, wurde Mariabackup erstellt. Es ist ein verbesserter Fork von Xtrabackup, der mit MariaDB TX-Verschlüsselungsfunktionen nicht richtig funktionierte. Jetzt können Sie Ihre heißen, physischen Backups mit Mariabackup genießen, während Ihre Daten sicher verschlüsselt sind.

MariaDB MaxScale

Zusätzlich zu MariaDB 10.3 enthält MariaDB TX MaxScale 2.3, einen SQL-fähigen Proxy, der zum Aufbau hochverfügbarer Umgebungen verwendet werden kann. Es bringt zahlreiche Features mit, von denen wir hier auf die wichtigsten eingehen möchten.

Automatisches Failover

MaxScale kann verwendet werden, um den Zustand des Master-MariaDB-Knotens zu verfolgen und bei einem Ausfall ein schnelles, automatisches Failover durchzuführen. Automatisiertes Failover ist entscheidend für den Aufbau einer hochverfügbaren Lösung, die sich nach einem Ausfall umgehend erholen kann.

Lese-Schreib-Aufteilung

Read-Write-Splitting ist ein wichtiges Feature, um Read-Scaling zu ermöglichen. Es reicht aus, wenn sich die Anwendung mit MaxScale verbindet, und sie erkennt die Topologie und bestimmt, welche MariaDB als Master und welche als Slaves fungiert. Es leitet dann den Datenverkehr entsprechend zu diesem weiter. SELECT-Anfragen werden an die Slaves gesendet, Schreibvorgänge werden an den Master gesendet. Alles geschieht automatisch, die Topologie wird ständig überwacht und sollte ein Failover auftreten, wird der Datenverkehr basierend auf der Änderung umgeleitet.

Transparente Abfrageweiterleitung

MaxScale, das der Eingangspunkt des Datenverkehrs in MariaDB TX ist, kann verwendet werden, um eine Lese-Schreib-Aufteilung vorzunehmen. Manchmal ist dies immer noch nicht genug und es wäre großartig, eine Möglichkeit zu haben, zu steuern, wohin eine bestimmte Abfrage gesendet werden soll. Dies ist in MaxScale möglich - Sie können die Abfragen mit regulären Ausdrücken abgleichen und dann entscheiden, ob sie an den Master oder an Slaves gesendet werden sollen. Dies kann in einigen besonderen Fällen hilfreich sein, in denen die SELECT-Abfrage aufgrund von Read-after-Write-Problemen auf dem Master ausgeführt werden muss oder einfach nur, weil er die aktuellste Ansicht des Datensatzes haben muss.

Caching von Abfrageergebnissen

Um die Leistung zu verbessern, ist das Zwischenspeichern von Abfragen ein Muss. Der in MariaDB verfügbare Abfrage-Cache funktioniert in hochgradig gleichzeitigen Umgebungen einfach nicht, da er die Serialisierung der Abfragen erzwingt und die Leistung selbst für schreibgeschützte Workloads erheblich verringert. Die Verwendung einer externen Lösung für den Cache ist nicht immer machbar:Schließlich haben Sie am Ende eine weitere Datenbank, die gewartet, gesichert und gesund gehalten werden muss. Es könnte besser sein, MaxScale als Cache zu verwenden, vorausgesetzt, Sie verwenden es bereits für andere Funktionen.

Abfrageblockierung

Manchmal leiden Datenbanken unter einer ineffizienten Abfrage, die das System stark belastet. Es könnte sein, dass das Umschreiben dieser Abfrage viel zu lange dauern würde (jemand müsste sie umschreiben, die Änderung beim Staging testen und dann schließlich in der Produktion bereitstellen), eine Zeit, die Sie nicht haben. MaxScale kann Ihnen hier mit Funktionen wie Abfrageblockierung helfen, mit denen Sie im Grunde verhindern können, dass eine bestimmte Abfrage die Datenbank trifft. Diese Funktion kann auch verwendet werden, um eine SQL-Firewall aufzubauen – verwerfen Sie alle Abfragen, die mit Mustern übereinstimmen, die auf SQL-Inject oder andere potenziell gefährliche und böswillige Aktivitäten hinweisen.

Wie Sie sehen können, wird MariaDB TX mit einer Liste von Funktionen und Software geliefert, die darauf ausgelegt sind, zusammenzuarbeiten und eine hochverfügbare, skalierbare Datenbank für die Verarbeitung von Transaktionsdaten aufzubauen.

Unternehmensüberwachung und -verwaltung für MariaDB TX

ClusterControl unterstützt MariaDB TX vollständig. Sie können problemlos sowohl MariaDB Server 10.3 als auch MaxScale 2.3 bereitstellen. ClusterControl unterstützt MariaDB-Replikations-Setups sowie MariaDB Galera Cluster.

Solange Sie eine SSH-Konnektivität von Ihrer ClusterControl-Instanz zu den Knoten haben, auf denen Sie MariaDB TX bereitstellen möchten, können Sie dies mit nur wenigen Klicks tun.

Zuerst müssen Sie definieren, wie ClusterControl die MariaDB TX-Knoten erreicht.

Wählen Sie dann MariaDB als Anbieter und entscheiden Sie sich für eine der unterstützten Versionen. Übergeben Sie das MariaDB-Root-Passwort.

Entscheiden Sie sich schließlich für die Topologie. Sie können MariaDB TX in einer Master-Master-, Aktiv-Standby-Konfiguration mit zusätzlichen Slaves bereitstellen. Die Replikation verwendet MariaDB GTID.

Für MariaDB Galera Cluster ist der erste Schritt genau der gleiche, dann müssen Sie nur noch MariaDB als Anbieter auswählen, sich für die Version entscheiden und Knoten im MariaDB Galera Cluster definieren:

Mit den bereitgestellten Clustern können Sie die Leistung von ClusterControl nutzen, um Ihre MariaDB TX-Cluster zu überwachen und zu verwalten.

Beispielsweise ist das Hinzufügen von MaxScale-Load-Balancern nur wenige Klicks entfernt:

Nach der Bereitstellung können Sie Ihr MaxScale mit ClusterControl verwalten:

Sie können Ihren Galera-Cluster auch skalieren, indem Sie neue Galera-Knoten oder asynchrone Replikations-Slaves hinzufügen. Sie können Slaves oder verzögerte Slaves zu Ihren Replikations-Setups hinzufügen oder Topologieänderungen vornehmen, indem Sie einen Slave zum Master hochstufen und den Rest des Setups erneut Slaven. ClusterControl überwacht den Cluster und versucht, ausgefallene Knoten oder Cluster wiederherzustellen, falls ein Vorfall eintritt. Für Backups kann Ihnen ClusterControl helfen, einen Backup-Zeitplan mit mysqldump und Mariabackup zu definieren, damit Sie ganz einfach von den Verschlüsselungsfunktionen von MariaDB TX profitieren können.

Für den Überwachungs- und Trendteil kann ClusterControl entweder in einem agentenlosen Modus verwendet werden:

Oder es kann zusammen mit Prometheus und Agenten verwendet werden, um einen noch besseren Einblick in die Vorgänge im MariaDB TX-Cluster zu geben.

Wir hoffen, dass dieser einführende Blogbeitrag Ihnen geholfen hat zu verstehen, was MariaDB TX ist und wie ClusterControl Ihnen bei der Verwaltung helfen kann.