[SIZE="4"]Automatisches Backup von MySQL-Datenbanken[/SIZE]
Getestet/Ausgeführt unter: Ubuntu 8.04 LTS Server
MySQL System: LAMPP (Stable)
Inhalt:
- Vorwort / Anmerkungen
- Erstellen eines MySQL Backups
- Transferieren eines Backups zu FTP
- Einrichten der Automatisierung
Vorwort:
Dieses Tutorial wurde von mir selbst geschrieben.
Ich habe keinerlei Quellen benutzt, da ich die Befehle
durch meinen Beruf größtenteils selbst kenne und
weiss wie sie sich handlen lassen.
Ich sehe leider immer wieder P-Server Projekte,
denen der Erfolg durch irgendwelche Serverabstürze
zu Nichte gemacht wird, weil sie kein Backup jeglicher
Dateien gemacht haben. Mit dieser Variante des MySQL
Backups kann man zumindest alle wichtigen Dateien
die sich auf den Datenbanken befinden sichern.
Als Konvention für die Codes gilt lediglich,
dass Zeilen, die mit einem # beginnen Kommentare sind
Erstellen eines MySQL Backups:
Da wir zunächst einmal die Datei benötigen,
die sich später dann wieder aufspielen lässt,
müssen wir erst aus der Datenbank eine .sql
Datei erstellen.
In der Linux Konsole können wir das mit Hilfe
eines einfachen Befehls vollziehen.
Da wir diese Abläufe allerdings später automatisieren
wollen, müssen wir diese zunächst in eine Scriptdatei speichern:
Erstellen eines Scriptverzeichnisses
unter /root: (Man muss als Root eingeloggt sein)
# Erstellen der Scriptdatei:
Falls ihr noch keinen Editor haben solltet,
empfehle ich "Nano".
Dieser kann über apt-get/yum/rpm install nano
automatisiert installiert werden und ist damit einsatzbereit.
Kommen wir also zur Bearbeitung der Scriptdatei
Nun sollte sich Nano öffnen.
Sein Äusseres erinnert ein wenig an die DOS-Variante
eines Texteditors, er ist jedoch wie ein notepad
relativ einfach zu bedienen.
In die leere Textdatei die sich nun geöffnet hat,
gehört folgendes rein:
Alles anzeigen
Damit wäre für's erste das Script zur erstellung eines MySQL Dumps
fertig und bereit zur Benutzung.
Anmerkung: Die Dateien die dort ausgegeben werden haben in diesem
Fall zur Eindeutigen Unterscheidung die Konvention "TagMonatJahr-StundeMinute.sql"
Transferieren auf einen FTP-Server
Um Dateien über die Linux Shell auf einen FTP-Server
zu übertragen und dies zu automatisieren,
hängen wir an unser Script, welches wir vorher erstellt
haben noch etwas an:
Alles anzeigen
Damit wäre dieser Vorgang bereits abgeschlossen
und wir haben die Datei gleich als .sql auf unserem FTP
(In diesem Falle im Verzeichnis /backups/mysqlbackups/pserverdb)
Automatisierung:
Für Automatisierungen unter Linux ist natürlich die CRONtab
prädestiniert, da sie einfach zu bearbeiten ist.
Aufgerufen werden kann die Crontab mit dem Befehl:
Ein Eintrag in der Crontab könnte zB. so aussehen:
Die Bedeutungen dieser Zahlen und Parameter von links nach rechts:
Minute; Stunde; Tag; Monat; Tag einer Woche (1-7); User; Befehl
Da wir nun also das Script beispielsweise alle 60 Minuten ausführen wollen,
würde unser Cron eintrag wie folgt aussehen:
Fertig. Zur Kontrolle solltet ihr dann nochmal crontab -l
aufrufen um sicherzugehen, dass euer Eintrag dort drin ist
und schon habt ihr eine automatisierte Backup Lösung für
eure MySQL Datenbanken unter Linux.
Ich hoffe ich konnte euch helfen
und wünsche noch ein schönes verbleibendes Restwochenende.
Mfg,
Tsakuya
Getestet/Ausgeführt unter: Ubuntu 8.04 LTS Server
MySQL System: LAMPP (Stable)
Inhalt:
- Vorwort / Anmerkungen
- Erstellen eines MySQL Backups
- Transferieren eines Backups zu FTP
- Einrichten der Automatisierung
Vorwort:
Dieses Tutorial wurde von mir selbst geschrieben.
Ich habe keinerlei Quellen benutzt, da ich die Befehle
durch meinen Beruf größtenteils selbst kenne und
weiss wie sie sich handlen lassen.
Ich sehe leider immer wieder P-Server Projekte,
denen der Erfolg durch irgendwelche Serverabstürze
zu Nichte gemacht wird, weil sie kein Backup jeglicher
Dateien gemacht haben. Mit dieser Variante des MySQL
Backups kann man zumindest alle wichtigen Dateien
die sich auf den Datenbanken befinden sichern.
Als Konvention für die Codes gilt lediglich,
dass Zeilen, die mit einem # beginnen Kommentare sind
Erstellen eines MySQL Backups:
Da wir zunächst einmal die Datei benötigen,
die sich später dann wieder aufspielen lässt,
müssen wir erst aus der Datenbank eine .sql
Datei erstellen.
In der Linux Konsole können wir das mit Hilfe
eines einfachen Befehls vollziehen.
Da wir diese Abläufe allerdings später automatisieren
wollen, müssen wir diese zunächst in eine Scriptdatei speichern:
Erstellen eines Scriptverzeichnisses
unter /root: (Man muss als Root eingeloggt sein)
# Erstellen der Scriptdatei:
Falls ihr noch keinen Editor haben solltet,
empfehle ich "Nano".
Dieser kann über apt-get/yum/rpm install nano
automatisiert installiert werden und ist damit einsatzbereit.
Kommen wir also zur Bearbeitung der Scriptdatei
Nun sollte sich Nano öffnen.
Sein Äusseres erinnert ein wenig an die DOS-Variante
eines Texteditors, er ist jedoch wie ein notepad
relativ einfach zu bedienen.
In die leere Textdatei die sich nun geöffnet hat,
gehört folgendes rein:
Quellcode
- # /root/scripte/mysqlb.sh
- # MySQL Backup Script by Tsakuya
- # Erstellungsdatum: 12.07.2009
- # Modifikationsdatum: 12.07.2009 14:06
- # Modifikation: Erstellung des Scripts
- # Erstellen des Backups in eine .sql Datei
- # Syntax: mysqldump --allow-keywords --opt -u $User -p $Passwort
- # $DatenbankName > $AusgabeDatei
- # Erstellen des MySQL Dumpfiles in /root/mysqlb
- mysqldump --allow-keywords --opt -u root -p hallowelt meinepserverdb > /root/mysqlb/`date +%d%m%y-%H%M`.sql
Damit wäre für's erste das Script zur erstellung eines MySQL Dumps
fertig und bereit zur Benutzung.
Anmerkung: Die Dateien die dort ausgegeben werden haben in diesem
Fall zur Eindeutigen Unterscheidung die Konvention "TagMonatJahr-StundeMinute.sql"
Transferieren auf einen FTP-Server
Um Dateien über die Linux Shell auf einen FTP-Server
zu übertragen und dies zu automatisieren,
hängen wir an unser Script, welches wir vorher erstellt
haben noch etwas an:
Quellcode
- # Modifikationsdatum: 14:40
- # Modifikation: FTP-Übertragung einrichten
- # Starten des FTP Programms
- ftp -n <<EOF
- # Öffnen eines Servers
- # und übertragen der Userdaten
- open mein.ftp.server
- user mein_user
- password mein_passwort
- # Wechseln in ein FTP Verzeichnis eurer Wahl
- cd /backups/mysqlbackups/pserverdb
- # Hochladen der Datei
- put /root/mysqlb/`date +%d%m%y-%H%M`.sql
- # Beenden der FTP-Verbindung
- quit
- EOF
Damit wäre dieser Vorgang bereits abgeschlossen
und wir haben die Datei gleich als .sql auf unserem FTP
(In diesem Falle im Verzeichnis /backups/mysqlbackups/pserverdb)
Automatisierung:
Für Automatisierungen unter Linux ist natürlich die CRONtab
prädestiniert, da sie einfach zu bearbeiten ist.
Aufgerufen werden kann die Crontab mit dem Befehl:
Ein Eintrag in der Crontab könnte zB. so aussehen:
Die Bedeutungen dieser Zahlen und Parameter von links nach rechts:
Minute; Stunde; Tag; Monat; Tag einer Woche (1-7); User; Befehl
Da wir nun also das Script beispielsweise alle 60 Minuten ausführen wollen,
würde unser Cron eintrag wie folgt aussehen:
Fertig. Zur Kontrolle solltet ihr dann nochmal crontab -l
aufrufen um sicherzugehen, dass euer Eintrag dort drin ist
und schon habt ihr eine automatisierte Backup Lösung für
eure MySQL Datenbanken unter Linux.
Ich hoffe ich konnte euch helfen
und wünsche noch ein schönes verbleibendes Restwochenende.
Mfg,
Tsakuya