|
|
Neues Datenbank-Frontend: MySQL-AdministratorÜbersichtliches WerkzeugSandro Zic |
Der Datenbankhersteller MySQL AB verspricht: Wer sich als MySQL-Datenbank-Administrator bisher nicht an Konfigurationsdateien und die Kommandozeile gewöhnen konnte, dem machen die neuen GUI-Tools das Leben leichter. Im Laufe dieses Jahres soll eine ganze Sammlung mit grafischen Werkzeugen entstehen. Mit ihnen seien selbst komplexe Aufgaben einfach durchzuführen, zum Beispiel die Installation, Konfiguration und Überwachung eines MySQL-Clusters für Replikation und Load Balancing. All diese Tools werden, wie von MySQL bereits gewohnt, als GPL-Version unter einer kommerziellen Lizenz erhältlich sein.
Den Startschuss für diese Produktlinie gab MySQL im Januar mit der Vorstellung von MySQL-Administrator[1] auf der Linux World Expo in New York. Das Linux-Magazin hat die brandneue Software unter die Lupe genommen und mit dem Hauptentwickler Mike Zinner über die weiteren geplanten Administrationstools gesprochen.
MySQL-Administrator (MA) ist eine grafische Verwaltungskonsole für alle MySQL-Datenbankserver ab Version 4. Das Programm verbindet sich unverschlüsselt oder per SSL zum Server, am SSH-Tunneling arbeiten die Entwickler noch. Zum Funktionsumfang gehören die Benutzer-
verwaltung des MySQL-Servers, seine Zustandsüberwachung, Backup und Recovery der Daten sowie das Auslesen von Protokollen. Die Software läuft gegenwärtig auf Windows und Linux, im Laufe des Jahres soll noch MacOS X hinzukommen.
Für diesen Artikel lief die Linux-Version unter Suse 9.0 mit KDE 3.1.4, die Windows-Variante unter Windows XP Professional. Da es sich bei der Testversion um eine noch unveröffentlichte Prä-Alphaversion direkt aus der Hand der Entwickler handelte, waren Kinderkrankheiten nicht auszuschließen, jedoch verhielt sich die Software unter Windows und Linux bereits recht stabil. Die Installation verlief sehr einfach.
Die Software reagierte unter beiden Systemen schnell auf Eingaben. Im Gegensatz zu manchen in Java programmierten und ziemlich trägen GUIs nutzt sie C-Bibliotheken. Die Oberfläche für Windows ist in Delphi VCL entwickelt, die für Linux setzt Gtkmm ein[2].
Wegen der Partnerschaft von MySQL mit SAP könnte man vermuten, dass der MySQL-Administrator auf dem SAPDB Database Manager GUI[3] aufbaut, er ist jedoch "eine komplette Neuentwicklung", versichert Mike Zinner. Auf den Vergleich mit dem Enterprise Manager für MSSQL angesprochen erläutert Zinner: "Der MA deckt im Moment nur einen Teil der Aufgaben des MSSQL Enterprise Managers ab. Erst wenn alle für dieses Jahr anvisierten MySQL-GUIs fertig sind, können wir die komplette Funktionalität bieten."
Highlight des MA sind die Möglichkeiten der Zustandsüberwachung: Dynamische Graphen zeigen im laufenden Betrieb kritische Werte an, zum Beispiel die Auslastung des Arbeitsspeichers oder der Festplatte und die Anzahl der Verbindungen zum Datenbankserver (siehe Abbildung 1). Damit lassen sich für jeden Tabellentyp - egal ob MyISAM oder InnoDB - Engpässe schnell erkennen. Außerdem zeigt der MA auch Graphen für einzelne Statusvariablen an, zum Beispiel für die Variablen »bytes_sent« und »bytes_received«, um die Belastung des Netzwerks zu ermitteln.
Dem erfahrenen Datenbank-Admin bietet sich auch die Möglichkeit, über selbst definierte Formeln verschiedene Statusvariablen zu kombinieren und damit individuell zugeschnittene Zustandsanzeigen zu erstellen. Mit einer einfachen Formel erstellt er sich etwa einen Graphen, der die über das Netzwerk geflossenen Bytes pro Sekunde anzeigt. Dazu navigiert er in der hierarchischen Übersicht der Statusvariablen zu »Bytes_ sent«, klickt mit der rechten Maustaste auf den Wert und gibt in das Fenster, das sich daraufhin öffnet, folgende Formel ein: »^Bytes_sent«.
Das Zeichen »^« steht für Delta und bedeutet "pro Sekunde". MA zeigt dann den entsprechende Graphen mit den Laufzeitwerten an. Analog lassen sich komplexere Formeln erstellen, etwa eine, die den prozentualen Anteil der Cache-Hits an allen Cache-Anfragen pro Sekunde anzeigt:
(^[Qcache_hits]/(^[Qcache_hits]+^[QCache_ inserts]+^[QCache_not_cached]))*100
Damit eröffnen sich auch dem professionellen Datenbank-Administrator neue Monitoring-Möglichkeiten.
Die im MA integrierte Userverwaltung bietet im Vergleich zu ähnlichen Programmen deutlich mehr Komfort. Ein Klick auf »User Administration« - schon ist in der linken Sidebar eine Liste aller Benutzer zu sehen (Abbildung 2). Klickt man danach auf einen der User, erscheinen die Namen der Hosts, von denen aus dieser Benutzer zugreifen darf. Nach Auswahl des entsprechenden Rechners speichert der Admin für diesen Benutzer Grundinformationen wie das Passwort, Kontaktdaten, eine Beschreibung oder sogar ein Foto.
MySQL bietet Zugriffsbeschränkungen für den gesamten Datenbankserver, für eine bestimmte Datenbank, Tabelle oder Spalte. Jede Stufe verwaltet der Admin im MA auf einer eigenen Seite, die er über Reiter ansteuert. Auf jeder Seite findet sich rechts eine Liste der möglichen Rechte. Hier wählt der MA-Anwender die gewünschten Rechte aus und weist sie dem MySQL-Benutzer einfach per Drag & Drop zu.
Es ist auch möglich, einem Nutzer die Einwahl in den DB-Server nur von bestimmten Rechnern aus zu erlauben. Dazu klickt man den Benutzernamen mit der rechten Maustaste an und fügt einen Host hinzu. Zusätzlich gibt es pro Benutzer eine Seite, in der der Admin Ressourcen wie die maximale Anzahl von Verbindungen pro Stunde einstellt.
Über die direkte Administration hinaus bietet der MA auch eine Backup-Verwaltung. Um Backups zu erstellen, legt der Anwender verschiedene Profile an. Über einen hierarchischen Navigationsbaum und Checkboxen weist er den MA an, welche Inhalte in der Sicherungsdatei landen sollen, und zwar gezielt von einer ganzen Datenbank bis hin zur Sicherung bestimmter Spalten einer Tabelle. Noch in Arbeit ist die Funktion, regelmäßig automatische Backups vom MA aus einzurichten.
Es sind die kleinen Details, die den MA in der Praxis gut einsetzbar machen. Dazu gehört beispielsweise die Möglichkeit, Protokolleinträge des Fehler- oder Slow-Query-Logs in einem eigenen Fenster zu sortieren. Der Admin filtert auf diese Weise schnell die wichtigsten Einträge und spart Zeit bei der Analyse. Ein Klick auf ein protokolliertes Ereignis genügt - und schon scrollt der MA automatisch zu dem gewünschten Kontext in der Logdatei.
Erklärungen zu den Konfigurationsoptionen für die globale Serverkonfiguration (»my.cnf«) im MA ersparen den Blick ins Handbuch. Neben der Checkbox für das Ein- und Ausschalten des Debugmodus findet sich auch der Hinweis, dass in diesem Modus die Datenbank langsamer arbeitet, da sie jede Aktion in einer Logdatei speichert. Gerade Einsteiger sind für solche Tipps dankbar.
Leider war in der getesteten Version die Komponente, mit der sich replizierte Datenbanken überwachen lassen, noch nicht fertig. Sie wird jedoch nur einen Überblick über die Cluster ermöglichen, erst die eigenständige Anwendung, der Replication Manager, soll später diese Cluster verwalten. Mike Zinner wollte aber nicht verraten, welche Bedienungsmöglichkeiten der Replication Manager erlaubt. Selbst bei der Bezeichnung handelt es sich noch um einen internen Arbeitsnamen. So viel ließ er das Linux-Magazin jedoch wissen: "Es wird damit kinderleicht, ein Replikations-Setup einzurichten. Auf der MySQL User Conference im April stellen wir diesbezüglich etwas Nettes vor."
Auch bei der Workbench handelt es sich noch um einen internen Namen. Sie wird in der ersten stabilen Version dem DB Designer 4[4] entsprechen. In ihr lassen sich Datenbankmodelle per Wysiwyg-Interface erstellen und modifizieren, zum Beispiel mit der Darstellung von Foreign Key Constraints. Für erfahrene Anwender stellt sich hier die Frage, ob die Workbench einen Debugger für Stored Procedures erhält, die in der Version 5.0 der MySQL-Datenbank implementiert sein werden.
"Stored Procedures wird man in der Workbench und im Query Analyzer verwalten können", sagt Mike Zinner, "im MySQL-Administrator wird es wie bei der Replikation nur einen Überblick geben, aus dem man aber die Workbench oder den Query Analyzer für eine bestimmte Stored Procedure aufrufen kann." Der Query Analyzer erlaubt die Abfrage von Daten und eine Bearbeitung der Ergebnisse sowie die Analyse einzelner Abfragen und Stored Procedures auf Basis von »EXPLAIN«-Statements. Nähere Details soll es erst auf der MySQL-Konferenz geben.
Der MySQL-Administrator ist nur der Start für eine ganze Produktfamilie, mit deren Hilfe die Administration der freien Datenbank leichter werden soll. Diese Familie ist in zwei Linien unterteilt: die Administrations-Werkzeuge, zu denen gegenwärtig nur der MA gehört, sowie Entwicklertools wie die Workbench, der Query Analyzer oder der Replikationsmanager.
MySQL AB hat es sich zum Ziel gesetzt, bis Ende 2004 diese Anwendungen in einer stabilen Version fertig gestellt zu haben. Die Veröffentlichungszyklen werden wie beim Datenbankserver von der Alpha- über die Beta- und Gamma-Version zur stabilen Ausgabe führen. Langfristig will die Firma das MySQL Control Center[5] ersetzen. Selbst hartgesottenen Verfechtern der Shell dürfte es in den Fingern kribbeln, sich künftig an den bunten MySQL-Administrator zu setzen, zumal eine nützliche Zustandsüberwachung lockt. Zusätzlich lässt sich die Shell auch über den MA aufrufen und damit jederzeit zwischen den verschiedenen Konsolen wechseln.
Vor allem für Einsteiger und Hobby-Administratoren wird der MA interessant sein. Seine vielfältigen Einstellungsmöglichkeiten erlauben eine sehr feine Konfiguration des MySQL-Servers. Das Benutzermanagement spart zudem oft viel Tipparbeit. Für Einsteiger gibt es auf der MySQL-Homepage zusätzlich die "Best practices" [6], in denen Anwender erfahren, wie sie ihre Datenbank optimieren und effizient verwalten. Die Profis unter den Admins werden wohl eher von Tools wie dem neuen Replikationsmanager profitieren. (mwe)
Infos |
[1] MySQL-Administrator: [http://www.mysql.com/products/administrator/] [2] Gtkmm: [http://www.gtkmm.org] [3] SAPDB Database Manager GUI: [http://www.sapdb.org/7.4/sap_db_dbm.htm] [4] DB Designer 4: [http://fabforce.net/dbdesigner4/] [5] MySQL Control Center: [http://www.mysql.com/products/mysqlcc/] [6] MySQL-Administrator "Best Practices": [http://www.mysql.com/articles/mysql-administrator-best-practices.html] |
Der Autor |
Sandro Zic ist Geschäftsführer der ZZ/OSS GbR in Tübingen. |