Top 5 Open Source Tools für MySQL Administratoren

Michael Coburn ist Produktmanager bei Percona. 

Für Datenbankadministratoren (DBAs) kann das Ausführen von Datenbanken mit maximaler Leistung ein wenig wie das Drehen von Platten sein: Es erfordert Beweglichkeit, Konzentration, schnelle Reaktionen, einen kühlen Kopf und einen gelegentlichen Anruf eines hilfreichen Betrachters. Datenbanken sind für den erfolgreichen Betrieb fast jeder Anwendung von zentraler Bedeutung. Da Datenbankadministratoren für die Daten eines Unternehmens verantwortlich sind, ist es wichtig, zuverlässige Tools zu finden, mit denen sie den Datenbankverwaltungsprozess rationalisieren und die täglichen Wartungsaufgaben vereinfachen können. Datenbankadministratoren benötigen gute Tools, damit ihre Systeme reibungslos funktionieren.

Was sind die bewährten Tools für MySQL-Administratoren? Hier teile ich meine fünf wichtigsten Open Source-Tools für MySQL-Administratoren und diskutiere deren Wert bei der Unterstützung der täglichen MySQL-Verwaltungsaufgaben. Für jeden von ihnen habe ich einen Link zum GitHub-Repository bereitgestellt und die Anzahl der GitHub-Sterne zum Zeitpunkt des Schreibens aufgelistet.

Mycli

Das Mycli-Projekt bietet die automatische Vervollständigung der MySQL-Befehlszeile und die Hervorhebung der Syntax. Es ist eines der beliebtesten MySQL-Tools für Administratoren. 

Sicherheitsbeschränkungen wie Jump-Hosts und Zwei-Faktor-Authentifizierung ermöglichen vielen MySQL-Datenbankadministratoren nur den Befehlszeilenzugriff auf ihre Systeme. Unter solchen Umständen sind beliebte GUI-Tools wie MySQL Workbench, Monyog und andere keine Option.

An der Kommandozeile wird ein Großteil der Zeit in einer hell-auf-schwarz-Terminalwelt verbracht. Eines der besten Dinge an Mycli ist der Reichtum der Syntaxhervorhebung. Auf diese Weise können Sie beispielsweise Funktionen und Operatoren visuell von Abfragezeichenfolgen in WHEREKlauseln trennen . Für eine kurze, einzeilige Abfrage ist dies möglicherweise keine so große Sache, aber es wird zu einem Game Changer, wenn Sie mit Abfragen arbeiten, die JOINOperationen über mehr als ein paar Tabellen ausführen . Mache ich JOINindizierte Spalten? Filtere ich mit führenden Platzhaltern in meinen WHEREKlauseln? Mycli unterstützt mehrzeilige Abfragen und Syntaxhervorhebungen. Dies bedeutet, dass Sie sich bei der Überprüfung oder Optimierung von Abfragen auf die Abschnitte konzentrieren können, die am wichtigsten sind. Sie können aus einer Reihe von Syntax-Hervorhebungsfarbschemata auswählen oder eigene erstellen.

Das andere Killer-Feature von Mycli ist die intelligente Vervollständigung. Auf diese Weise können Sie Tabellen- und Spaltennamen aus einer kontextsensitiven Liste auswählen, indem Sie nur die ersten Zeichen eingeben. Sie müssen Ihre aktuelle Eingabe nicht mehr ausführen, SHOW CREATE TABLE weil Sie den Namen der gewünschten Spalte in Ihrer WHEREKlausel vergessen haben !  

Amjith Ramanujam

Mit Mmycli können Sie Lieblingsabfragen alias verwenden \fs, z \fs myAlias myQuery. Dies ist sehr praktisch, da Sie die Abfrage \f myAliasdann jederzeit ausführen können .

Das Mycli-Projekt verwendet die BSD 3-Lizenz. Es gibt 44 Mitwirkende, 1,2.000 Commits und 5.000 Sterne.

Geist

Wenn Sie wie 99 Prozent der MySQL-Datenbankadministratoren eine Änderung an einer MySQL-Tabelle implementiert haben, während Sie die Auswirkungen auf die Produktion befürchten, sollten Sie Gh-ost (GitHub Online Schema Migration) in Betracht ziehen. Gh-ost bietet MySQL-Schemaänderungen, ohne Schreibvorgänge zu blockieren, ohne Trigger zu verwenden und die Migration anzuhalten und fortzusetzen! 

Warum ist das so wichtig? Seit MySQL 5.6 mit der neuen ALTER TABLE ... ALGORITHM=INPLACEDDL-Funktionalität (Data Definition Language) ausgeliefert wurde, war es möglich, eine Tabelle zu ändern, ohne Schreibvorgänge für allgemeine Vorgänge wie das Hinzufügen eines Index (B-Tree) zu blockieren. Es gibt jedoch noch einige Bedingungen, unter denen Schreibvorgänge (DML-Anweisungen) blockiert sind, insbesondere das Hinzufügen eines FULLTEXTIndex, die Verschlüsselung des Tabellenbereichs und die Konvertierung eines Spaltentyps. 

Andere beliebte Online - Schemaänderung Tools, wie Percona des pt-Online-Schema-Änderung, die Arbeit durch einen Satz von drei Trigger Implementierung ( INSERT, UPDATEund DELETE) auf dem Master eine Schattenkopie - Tabelle mit Änderungen synchron zu halten. Dies führt zu einer geringen Leistungseinbuße aufgrund der Schreibverstärkung, erfordert jedoch sieben Instanzen von Metadatensperren. Diese blockieren effektiv DML-Ereignisse (Data Manipulation Language). 

Da Gh-ost mit dem Binärprotokoll arbeitet, ist es nicht anfällig für die auslöserbasierten Nachteile. Schließlich kann Gh-ost die Aktivität effektiv auf null Ereignisse drosseln, sodass Sie die Schemamigration für eine Weile unterbrechen können, wenn Ihr Server Probleme hat, und fortfahren können, wenn die Aktivitätsblase weitergeht.

Wie funktioniert Gh-ost? Standardmäßig stellt Gh-ost eine Verbindung zu einem Replikat (Slave) her, identifiziert den Master und wendet die Migration auf den Master an. Es empfängt Änderungen an einem Replikat an der Quelltabelle in binlog_format = ROW, analysiert das Protokoll und konvertiert diese Anweisungen, um sie in der Schattentabelle des Masters erneut auszuführen. Es verfolgt die Zeilenanzahl auf dem Replikat und gibt an, wann es Zeit ist, eine atomare Umschaltung durchzuführen (Switch-Tabellen). 

GitHub

Gh-ost bietet einen alternativen Modus, in dem Sie die Migration direkt auf dem Master ausführen (unabhängig davon, ob Slaves vorhanden sind oder nicht), die binlog_format=ROWEreignisse des Masters zurücklesen und sie dann erneut auf die Schattentabelle anwenden.

Eine letzte Option ist verfügbar, um die Migration nur auf dem Replikat auszuführen, ohne den Master zu beeinflussen, sodass Sie die Migration testen oder anderweitig validieren können.

GitHub

Beachten Sie, dass Gh-ost möglicherweise nicht ordnungsgemäß funktioniert, wenn Ihr Schema Fremdschlüssel enthält, da diese Konfiguration nicht unterstützt wird.

Beachten Sie, dass Oak-Online-Alter-Table der Vorgänger von Gh-Ost war. Sie können einen Vergleich zwischen der Leistung von Gh-ost und pt-online-schema-change von Peter Zaitsev, Perconas CEO, zusammen mit einer Antwort von Shlomi Noach, der Autorin und Betreuerin des OAK-Toolkits und von Gh-ost, lesen.

Das Gh-ost-Projekt verwendet die MIT-Lizenz. Es hat 29 Mitwirkende, fast 1k Commits und 3k Sterne.

PhpMyAdmin

Eines der am längsten laufenden und ausgereiftesten Projekte unter den MySQL-Tools ist das ehrwürdige PhpMyAdmin-Tool, mit dem MySQL über das Web verwaltet wird. Mit phpMyAdmin kann der DBA MySQL-Datenbankobjekte durchsuchen und ändern: Datenbanken, Tabellen, Ansichten, Felder und Indizes. Es gibt Optionen, um den Datenexport in mehr als einem Dutzend Formaten durchzuführen, MySQL-Benutzer und -Berechtigungen zu ändern und - mein Favorit - Ad-hoc-Abfragen auszuführen.

Sie finden auch eine Registerkarte Status, auf der Fragen, Verbindungen / Prozesse und Netzwerkverkehr für Ihre angegebene Datenbankinstanz dynamisch dargestellt werden, sowie eine Registerkarte Advisor, auf der eine Liste möglicher Leistungsprobleme sowie Empfehlungen zur Behebung angezeigt werden.

PhpMyAdmin verwendet die GPLv2-Lizenz. Dies ist ein riesiges Projekt mit mehr als 800 Mitwirkenden, erstaunlichen 112.000 Commits und 2,7.000 Sternen. Eine Online-Demo finden Sie unter //demo.phpmyadmin.net/master-config/

Sqlcheck

SQL-Anti-Patterns können Abfragen verlangsamen, aber häufig sind erfahrene Datenbankadministratoren und Entwickler erforderlich, die über Code nachdenken, um sie zu identifizieren und aufzulösen. Sqlcheck spiegelt die Bemühungen von Joy Arulraj wider, das Buch „SQL Anti-Patterns: Vermeidung der Fallstricke der Datenbankprogrammierung“ von Bill Karwin zu kodifizieren. Karwin identifiziert vier Kategorien von Anti-Patterns:

  1. Logisches Datenbankdesign
  2. Design der physischen Datenbank
  3. Abfrage
  4. Anwendungsentwicklung
Joy Arulraj

Sqlcheck kann auf unterschiedliche Risikostufen ausgerichtet sein, die als geringes, mittleres oder hohes Risiko eingestuft werden. Dies ist hilfreich, wenn Ihre Liste der Anti-Patterns groß ist, da Sie die Abfragen mit der größten Auswirkung auf die Leistung priorisieren können. Alles, was Sie tun müssen, um loszulegen, ist, eine Liste Ihrer unterschiedlichen Abfragen in einer Datei zu sammeln und sie dann als Argument an das Tool zu übergeben. 

Ich habe ein Beispiel aus der PMM-Demo-Umgebung verwendet, um die folgende Ausgabe zu generieren:

[michael @ fedora ~] $ sqlcheck —Dateiname PMMDemoQueries.txt

+ —————————————————————————- +

| SQLCHECK |

+ —————————————————————————- +

> RISIKOSTUFE :: ALLE ANTI-MUSTER

> SQL FILE NAME :: Ausgabe

> FARBMODUS :: AKTIVIERT

> VERBOSE MODE :: DISABLED

> DELIMITER ::;

—————————————————————————

==================== Ergebnisse ===================

—————————————————————————

SQL-Anweisung: Wählen Sie table_schema, table_name, table_type, ifnull (engine, 'none') als engine aus.

ifnull (version, '0') als version, ifnull (row_format, 'none') als row_format,

ifnull (table_rows, '0') als table_rows, ifnull (data_length, '0') als data_length,

ifnull (index_length, '0') als index_length, ifnull (data_free, '0') als data_free,

ifnull (create_options, 'none') als create_options aus information_schema.tables

wobei table_schema = 'innodb_small';

[Ausgabe]: (TIPPS) NULL Verwendung

[Übereinstimmender Ausdruck: null]

...

=================== Zusammenfassung ===================

Alle Anti-Patterns und Hinweise :: 7

> Hohes Risiko :: 0

> Mittleres Risiko :: 0

> Geringes Risiko :: 2

> Hinweise :: 5

Sqlcheck wird von der Apache License 2.0 abgedeckt. Das Projekt hat fünf Mitwirkende, 187 Commits und 1,4.000 Sterne.

Orchestrator

Orchestrator ist ein Hochverfügbarkeits- und Replikationsmanagement-Tool. Es bietet die Möglichkeit, die Replikationstopologie einer MySQL-Umgebung zu ermitteln, indem die Kette nach oben und unten gecrawlt wird, um Master und Slaves zu identifizieren. Es kann auch verwendet werden, um Ihre Replikationstopologie über die GUI umzugestalten und eine Drag-and-Drop-Schnittstelle bereitzustellen, mit der ein Slave zu einem Master befördert werden kann. Dies ist eine sehr sichere Operation. Tatsächlich lehnt Orchestrator illegale Vorgänge ab, um Ihr System nicht zu beschädigen. 

Schließlich kann Orchestrator die Wiederherstellung unterstützen, wenn Knoten ausfallen, da das Statuskonzept verwendet wird, um intelligent die richtige Wiederherstellungsmethode auszuwählen und den geeigneten Master-Heraufstufungsprozess zu verwenden.

Orchestrator ist ein weiteres Tool von Shlomi Noach bei GitHub. Es wird von der Apache License 2.0 abgedeckt. Orchestrator hat zum Zeitpunkt des Schreibens 34 Mitwirkende, 2.780 Commits und 900 Sterne.

GitHub

Die Teller drehen lassen

Zu Beginn dieses Artikels habe ich darüber gesprochen, dass die Rolle des MySQL-Administrators der eines Plattenspinners entspricht. Gelegentlich kann der Administrator von einem Ruf eines hilfreichen Zuschauers profitieren, wenn die Dinge zu wackeln beginnen und Aufmerksamkeit benötigen. Percona Monitoring and Management (PMM) übernimmt das Schreien, Hervorheben von Bereichen, die Aufmerksamkeit erfordern, und hilft Datenbankadministratoren, Datenbankprobleme zu identifizieren und zu lösen.

PMM enthält eine Reihe erstklassiger Open Source-Tools, einschließlich Orchestrator, um eine umfassende Datenbanküberwachungs- und -verwaltungsfunktion bereitzustellen. Die grafische Darstellung bietet leicht zu assimilierende visuelle Hinweise auf den Status Ihrer Datenbankserver im Laufe der Zeit und unterstützt MySQL-, MariaDB- und MongoDB-Server. Schauen Sie sich unsere öffentliche Demo an!

Genau wie meine fünf besten Tools und wie die gesamte Percona-Software ist PMM eine völlig kostenlose Open-Source-Software, die von der Percona-Website oder von GitHub heruntergeladen werden kann.

Jedes der von mir beschriebenen Tools befasst sich mit einem anderen Aspekt der Rolle des MySQL-Administrators. Sie tragen zu Ihrem Arsenal an Datenbankverwaltungstools bei und ermöglichen es Ihnen, die Erfahrungen und Fähigkeiten der Mitwirkenden an diesen beliebten Projekten zu nutzen. Sie sind kostenlos und Open Source und können bei Bedarf an die Anforderungen Ihrer eigenen Umgebung angepasst werden, oder Sie können sie ohne Änderungen verwenden. Wenn Sie diese Edelsteine ​​noch nicht erforscht haben, empfehlen wir Ihnen, genauer hinzuschauen, ob sie Ihnen Vorteile gegenüber Ihren aktuellen Methoden und Werkzeugen bieten.

- -

Michael Coburn ist Produktmanager bei Percona, wo er für Percona Monitoring and Management verantwortlich ist. Coburn hat eine Grundlage in der Systemadministration und arbeitet gerne mit SAN-Technologien und Hochverfügbarkeitslösungen.

Das New Tech Forum bietet einen Ort, an dem Sie neue Unternehmenstechnologien in beispielloser Tiefe und Breite erkunden und diskutieren können. Die Auswahl ist subjektiv, basierend auf unserer Auswahl der Technologien, die wir für wichtig und für die Leser von größtem Interesse halten. akzeptiert keine Marketingmaterialien zur Veröffentlichung und behält sich das Recht vor, alle eingebrachten Inhalte zu bearbeiten. Senden Sie alle Anfragen an  [email protected] .