SEP sesam Extension für MySQL
From SEPsesam
(C)SEP AG
Copyright 1999-2009 by SEP AG. All Rights reserved.
Any form of reproduction of the contents or parts of this manual is allowed only with the express written permission from SEP AG. When compiling and designing user documentation SEP AG uses great diligence and attempts to deliver accurate and correct information. However, SEP AG cannot issue a guarantee for the contents of this manual.
Contents |
Einleitung
Das SEP sesam Online Modul für MySQL ermöglicht die Sicherung von MySQL-Datenbanken zur Laufzeit. Dies umfasst das Sicherung und Rücksicherung einer einzelnen Datenbank oder aller Datenbanken eines Servers. Als Schnittstelle für das Backup MySQL-Tool mysqldump und zum Restore das MySQL-Programm mysql genutzt. Nur die MySQL-eigenen Datenbank-Tools gewährleisten, dass die Daten nach Backup und Restore einen konsistenten Zustand aufweisen.
| ACHTUNG |
|
Alle im Dokument aufgeführten Sicherungsparameter sind keine Bestandteile des SEP sesam. Es handelt sich hierbei ausschließlich um Beipiele und Empfehlungen, wie eine MySQL-Datenbank gesichert werden kann. Auf Grund der verschiedenen Betriebs-Modi in denen eine MySQL-Datenbank betrieben werden und in den unterschiedlichsten Einsatzmöglichkeiten in den eine MySQL-Datenbank genutzt werden kann, können hier nur einige Parameter beipielgebend erwähnt werden. Weiterführende Informationen zu Backup-Strategien und den Vorgehensweisen beim Backup entnehmen Sie bitte der MySQL-Dokumentation und den Manpages zu mysqldump und mysql. |
Systemvoraussetzungen
- MySQL-Server Version > 4.1 auf Linux (z.B. RHEL 4/5 und SLES 9/10)
- Sesam-Server Version >= 3.0.1.20
- Bereits installierter Sesam Client
- SEP sesam Extension für MySQL nur dann, wenn der Sesam Klient Version <3.6 installiert wurde. Der Sesam Klient ab Version 3.6 bringt die MySQL Extension bereits mit.
- Der MySQL-Server muss als Klient am Sesam Server registriert sein
Installation Sesam Client 3.4
RPM
Die RPM-Installation ist die bevorzugte Methode für die Installation der MySQL-Online-Extension.
- Bitte stellen Sie sicher, dass der Sesam Klient als RPM installiert ist.
- Eine Pfadsicherung sollte mit diesem Klienten möglich sein
Installieren oder Updaten des SEP sesam Online DB-Moduls mit:
rpm -Uhv sesam_mysql-2.0.2-100.i386.rpm
Tarball
- Bitte stellen Sie sicher, dass der Sesam Klient als RPM installiert ist.
- Eine Pfadsicherung sollte mit diesem Klienten möglich sein
- Aus dem Klienten als User "root" einloggen
- Das Tarball (z.B. sesam-mysql.tgz) aus dem Downloadbreich herunterladen und an einem temporären Ort (z.B. /tmp) entpacken
- Kopieren der MySQL-Komponenten in das Binary-Verzeichnis des Sesam Klienten
Die Installation wird wie folgt durchgeführt:
#> cd /tmp #> tar xvzf sesam-mysql.tgz #> cp /tmp/sesam-mysql/* /opt/sesam/bin/sesam/
Installation Sesam Client 3.6
Ab Sesam Client Version 3.6 ist das MySQL Modul in der regulären Klientinstallation enthalten, es muss keine zusätzliche Modulinstallation vorgenommen werden.
Backup Konfiguration
Die weitere Einrichtung wird in der SEP sesam GUI vorgenommen.
- Erzeugen eines neuen Sicherungsauftrages
- Als Sicherungstyp ist MySQL zu wählen
- Eingabe des Datenbanknamen im Feld "Quelle".
- Unter Optionen 1 können für das Backup und dem Restore Parameter mitgegeben werden. Details sind im Abschnitt "Backup & Restore" beschrieben.
| Info |
|
Es wird empfohlen bei Job-Konfiguration ggf. User und Passwort bei den 'Rücksicherungsoptionen' auf dieselben Werte zu setzen wie die 'Sicherungsoptionen'. Bei Bedarf können die Optionen zum Zeitpunkt der Rücksicherung im Rücksicherungsassistenten angegeben werden. |
- Als Sicherungsquelle sind dabei folgende Angaben möglich:
- <DB_NAME>
Sicherung einer einzelnen Datenbank (z.B. my_db)
ACHTUNG: Bitte auf die Groß-/Kleinschreibung des Datenbanknamens achten !!! - DB:<DB_NAME>
Sicherung einer einzelnen Datenbank (z.B. DB:my_db). Hier wird im gesicherten Dump automatisch ein CREATE DATABASE statement erzeugt. - all
Sicherung aller Datenbanken eines MySQL-Servers
- <DB_NAME>
- Über die Dialogseite Optionen können der Sicherung im Feld Sicherungsoptionen weitere Parameter mitgegeben werden. Folgend einige Beipiele:
a) Um das Passwort und den Username der Datenbank zu setzen:
-a user=<DBuser>,password=<Passwort_DBusers>
| Info |
|
Die bisherige Konfiguration von username und password in der sm.ini-Datei des Klienten ist nicht mehr nötig. Diese Einstellungen werden jetzt in der GUI des Sesam Servers vorgenommen. |
b) Für eine verbesserung des Datendurchsatzes beim Backup:
-a opt
c) Für eine konsistente Sicherung einer MySQL-Datenbank vom Typ InnoDB:
-a single-transaction
d) Man kann die o. a. Parameter und Andere auch in einem Statement kombinieren:
-a user=<DBuser>,password=<Passwort_DBusers>,opt,single-transaction
| ACHTUNG |
|
Backup Konfiguration für spezielle MySQL 5.0 Funktionen (Stored Procedures, Triggers)
Im Normalfall sichert der Sesam Backup Client keine definierten "Stored Procedures" oder "Triggers". Ab MySQL 5.0 Besteht die Möglichkeit dieses zusätzlichen SQL Funktionen zu nutzen.
Es besteht allerdings die Möglichkeit, über zusätzliche Sicherungsoptionen den Sesam Backup Client anzuweisen, diese definierten Funktionen zu sichern.
Backup der Stored Procedures
Das folgende Beispiel zeigt die zusätzliche Sicherungsoption, die benötigt wird, um den Sesam Backup Klienten anzuweisen, definierte "Stored Procedures" zu sichern:
-a routines
Der entsprechende Screenshot zeigt die Definition im Backup Auftrag:
Backup definierter Trigger
Wie auch bei den Stored Procedures, ist es möglich definierte Trigger mitzusichern, dies geschieht über die zusätzliche Sicherungsoption:
-a triggers
Wie dieser Screenshot zur Verdeutlichung zeigt:
Natürlich ist es auch möglich, mehrere Optionen einzutragen, um beide Funktionen (Stored Procedures sowie Trigger) mit in die Sicherung einfliessen zu lassen:
-a routines -a triggers
Restore Konfiguration
Ein Restore wird über den Aufruf des Rücksicherungsassistenten gestartet. Hier wird zunächst der gesuchte Sicherungsjob gewählt, danach der Zeitraum des gewünschten Backups eingestellt. In der daraufhin erscheinenden Liste ist das gewünschte Backup zur Rücksicherung auszuwählen. Hierbei gibt es 2 Optionen:
- kein Recover nach Restore
Hier wird beim Restore ein Dump File im Work-Verzeichnis (normalerweise /var/opt/sesam/var/work des Sesam Klienten erzeugt oder in älteren Versionen auch unter /opt/sesam/bin/sesam auf dem Clienten. Der Name der Datei setzt sich aus dem Prefix mysql-, der Saveset-ID und abschließend dem Suffix .tmp zusammen. Die Datei kann nun manuell dem MySQL-Kommando mysql in die Datenbank importiert werden kann.
Beispiel: mysql < /var/opt/sesam/var/work/mysql-SF20081128224529.tmp
- Auto Recover nach restore
Ist diese Option gewählt, dann erfolgt die Rücksicherung direkt in die Datenbank. Wenn in dem rückzusichernden Backupjob nur eine einzelne Datenbank gesichert wurde, erfolgt der Restore in die Datenbank, deren Name bei Rücksicherungsziel angegeben ist.
| ACHTUNG |
|
Bei Benutzung der Option Auto Recover nach Restore muss die Datenbank bereits exisieren, ansonsten wird der Restore fehlschlagen. Dabei ist weiterhin darauf zu achten, dass die Ausführungsoption Existierenden Dateien überschreiben gesetzt ist, da die existierende Datenbank ansonsten nicht überschrieben wird. Ist im Backup das CREATE DATABASE Statement nicht enthalten, können die Daten immer nur in die Original-Datenbank zurückgespielt werden. Es ist hierbei NICHT möglich das Rücksicherungsziel zu ändern. In einem solchen Fall, dass die Datenbank an einen anderen Ort zurückgesichert werden muss, ist nur eine Rücksicherung mit der Option kein Recover nach Restore möglich. Hier kann im Nachhinein das Dump-File editiert und damit den Erfordernissen angepasst werden. Abschließend ist der Dump manuell (s.o.) in das Zielsystem zu importieren. |
Troubleshooting
MySQL Backup schlägt fehl mit: "mysqldump: Error 2013: Lost connection to MySQL server during query'"
Dieser Fehler kann bei der Sicherung von MySQL Datenbanken auf Tape Devices auftreten. Grund für dieses Problem ist die MySQL Variable "net_write_timeout". Der Wert dieser Variable beträgt nach einer Installation 60 Sekunden.
Zwischen dem Start des MySQL Dump Vorganges und der eigentlichen Schreiboperation auf Bandlaufwerke können aber unter Umständen mehr als 60 Sekunden vergehen. Der MySQL Server schliesst dann die Inaktive Verbindung nach 60 Sekunden.
Die Lösung für dieses Problem ist das erhöhen der "net_write_timeout" Variable in der MySQL Konfiguration. In /etc/my.cnf ist folgender Eintrag an die Optionsliste anzuhängen:
[mysqld] ... other options .. net_write_timeout = 180
Die Einstellung wird erst nach einem Neustart Aktiv. Will man die Einstellung Online, ohne Neustart vornehmen, so kann dies durch einen reguläen MySQL Client Befehl geschehen, zu beachten ist aber, dass diese Einstellung nach einem Neustart verloren geht:
# mysql -u root -p -e "set global net_write_timeout=180;
Ist die Variable bereits auf 180 Sekunden gesetzt und der Backup schlägt immer noch fehl, so ist ggf. ein höherer Wert als 180 Sekunden zu setzen.
MySQL Sicherungen mit Passwörtern die Umlaute enthalten / Allgemeine Passwort-Sicherheit
Enthält das Passwort für den vorgegebenen Benutzer über den die Sicherung erfolgen soll Umlaute, so kann dies zu Problemen während des Backups führen. Generell wird die Eingabe von Maskierenden Hochkommatas sowie Umlauten in der GUI meist unterdrückt.
In diesem Falle - und auch generell bei der Verwendung von MySQL Sicherungen - empfiehlt es sich das Passwort nicht im Auftrag, sondern in einem speziellen Konfigurationsfile abzulegen. Dies hat auch weitere Vorteile: durch das ablegen des Passwortes in der Konfigurationsdatei erscheint es nicht im Sesam Logging.
Verwendung von Konfigurationsdatei ".my.cnf" für Passwort
Es gibt die Möglichkeit eine Konfigurationsdatei des Namens ".my.cnf" anzulegen. Diese Datei muss, damit der SEP Sesam Client sie korrekt lesen kann in
/.my.cnf
abgelegt werden.
Die Datei hat den Folgenden Inhalt:
[client] password="mysqlpw"
Die Einstellungen im GUI enthalten dann nur noch das Statement:
-a user=username
das Passwort wird während der Sicherung aus dem Konfigurationfile gelesen.


