News
DBA-Tipp: MOCA - MySQL on steroids

Die Information ist ein schnelllebiges Gut. Jeden Tag werden wir mit hunderten Informationen zugemüllt. Deshalb sind wir bestrebt uns auf das Wesentliche zu konzentrieren und nur substantiell nachhaltige Informationen bereitzustellen.

Icon Unternehmen

Jeder Oracle DBA sollte es kennen, jeder gute Oracle DBA sollte es auch zum Einsatz bringen: die Oracle Flexible Architecture, kurz: OFA.

Das Prinzip der Separation von Software- und Datendateien zur Vereinfachung der Administration, Minimierung von Fehlerquellen und Nutzung unterschiedlicher Festplattenkonfigurationen zur Optimierung der Performance ist analog hierzu auch auf MySQL anwendbar: `MySQL Optimal Configuration Architecture` (MOCA).

Dieser Artikel soll einen kurzen Einblick in die Handhabung einer MOCA-Installation geben.

Warum MySQL Optimal Configuration Architecture (MOCA)?

  • Minimierung von Fehlerquellen
  • Möglichkeit der Installation unterschiedlicher MySQL-Versionen
  • Support für mehrere Datenbanken auf einem Server
  • Separation von Software, Datendateien, Binary-Logs und administrativen Dateien
  • Minimierung von Downtimes
  • Reduzierung administrativer Kosten
  • Konsistenz der Konfigurationsdateien
  • Trennung von Konfigurationsdateien der Datenbanken und Systemkonfigurationen

Die MySQL Optimal Configuration Architecture beschreibt eine generelle Verzeichnisstruktur für Datenbanksoftware, Datendateien, Konfigurationsdateien, Logfiles und Backups.

Die Verzeichnisstruktur wird hierbei wie folgt angelegt:

  • Datenbanksoftware:
         /u<xx>/app/mysql/<product>/<version>
  • Verzeichnis für seperate Daten-, Log- und Konfigurationsdateien:
        /u<xx>/mysqldata/<db_server_name>]/<specific_type_of_directory>

Bei den Datendateien (`/u02`) ist zwischen den physischen Strukturen des jeweiligen Schemas und dem shared Tablespace von MySQL zu unterscheiden. Beide sollten auf einem RAID0, RAID1 oder RAID10 gelagert sein.

Für die Transaktions- und Redo-Logdateien (`/u03`) wird - anlog zum Binary Log - ein RAID1 empfohlen.

Die Binary Logfiles (`/u04`) enthalten alle Anweisungen/Statements, die Daten aktualisieren oder hätten aktualisiert werden sollen. Des Weiteren enthält das Binary Logfile auch Informationen dazu, wie lange die Ausführung datenverändernder Anweisungen jeweils gedauert hat. Für Binary Logfiles wird ein RAID1 empfohlen.

Das administrative Verzeichnis (`/u05`) enthält alle Informationen zum aktuellen Status der Datenbank(en), die Konfigurationen (my.cnf), PID- und Socket-Dateien und optional Verwaltungsskripte. Hierbei muss nicht zwingend auf eine seperate Festplatte ausgewichen werden. Das Verzeichnis kann auf einer Partition der Systemfestplatte gelagert sein.

Für Backups empfielt sich ein NFS-Share (`/backup`) zur zentralen Aufbewahrung.

Eine mögliche MOCA-Verzeichnisstruktur kann wie folgt aussehen:

 

Anstelle einer Installation aus einem RPM-, einem DEB-Paket bzw.  aus einem Repository wird hierbei auf das  von MySQL separat erhältliche Tarball zurückgegriffen.

Die Installation enthält zwar einige Installations- und Konfigurationsschritte mehr, die jedoch nach ein bis zwei Testinstallationen ähnlich einfach vonstattengehen sollte wie die Installation mittels des betriebssystemeigenen Packet-Managements.

Vorteilhaft bei dieser Installationsmethode ist die Trennung der Dateien von Grund auf. Bei einer Installation mittels Paket-Management werden alle MySQL-relevanten Daten- und Logfiles in ein Verzeichnis geschoben. Ein anschließendes manuelles Verschieben der Dateien und die Anpassung jeglicher relevanter Konfigurationen ist zwar möglich, aber fehleranfällig und nur unwesentlich zeitsparender.

Installationsschritte im Überblick

  • Anlegen der Verzeichnisstrukturen und Setzen der Berechtigungen für Datenbanknutzer/-gruppe
  • Installation der MySQL-Datenbanksoftware und Konfiguration mittels my.cnf
  • Installation der MySQL-Datenbank mit Hilfe des Skriptes "mysql_install_db"; initiales Starten der Datenbank (mysqld_safe)
  • Sicherung der Installation (mysql_secure_installation)
  • Etablierung des Startskriptes und Test von Datenbank-Start, -Stop und -Neustart des Serversystems

Fazit:
Wurde eine MOCA-Installation zwei bis drei mal durchgeführt, geht sie einem leicht von der Hand - mit dem Vorteil der Trennung aller performance- und redundanzkritischer Dateien.
Mit dem richtigen Unterbau an Festplattensystemen kann das Optimale aus einer MySQL-Datenbank herausgeholt werden.