MySQL-Backup über cronjob
Clemens
- datenbank
0 Bio0 Michael Schröpl
Hi!
PHP-MyAdmin hat eine nette Funktion um einen dump (der die das dump?) der Datenbank zu erstellen. Dieser dump ist afaik auch gut geeignet, um als Backup zu fungieren (ich hoffe das stimmt, habe es bisher noch nicht gebraucht ;-).
Wie kann ich es jetzt anstellen, dass per cronjob z.B. täglich ein Backup/dump auf einem anderen Server erstellt wird oder noch besser der dump per Mail verschickt wird?
Herausgefunden habe ich bisher, dass man mit
/mysqladmin/tbl_dump.php?lang=de&server=1&db=datenbank_name&what=data
den Dump in HTML verpackt angezeigt bekommt.
mit dem weiteren Parameter &gzip=gzip wird sogar eine komprimierte Datei zurückgeliefert.
Jetzt suche ich nur noch eine Möglichkeit, das periodisch per cronjob abzuspeichern, bzw. zu verschicken.
Im Hinterkopf habe ich noch, dass so etwas (abspeichern) mit Lynx gehen soll, aber wohl nur für HTML, wie geht das, wenn statt einer HTML-Datei ein Datei zum Download angeboten wird. Und was, wenn ich die auch noch versenden will?
Kann jemand helfen?
Clemens
P.S.: Was ist als Backup eigentlich besser geeignet, manche habe ja auch Datei-Zugriff auf den Datenbank-Server: Direkt die entsprechenden Dateien zu speichern oder das über einen dunp zu machen? Kann ich die Dateien z.B. einfach auf einen anderen Datenbank-Server kopieren oder muss man da was beachten (Time-stamp der Dateien, Daten erst beim Server "anmelden") oder reicht es datadir anzupassen?
Sup!
man cron
man sendmail
man uuencode / man mimencode
Oder halt gucken, was PHP dafür so bereit hält...
Gruesse,
Bio
Hi auch,
Herausgefunden habe ich bisher, dass man mit
/mysqladmin/tbl_dump.php?lang=de&server=1&db=datenbank_name&what=data
gehe nicht über HTTP, sondern suche die entsprechende Kommandozeilen-
Schnittstelle des Dump-Tools in dessen Dokumentation.
mit dem weiteren Parameter &gzip=gzip wird sogar eine komprimierte
Datei zurückgeliefert.
Das kannst Du auf der Kommandozeile auch - indem Du den Datenstrom
in ein "gzip -9" hinein pipest.
Im Hinterkopf habe ich noch, dass so etwas (abspeichern) mit Lynx
gehen soll, aber wohl nur für HTML, wie geht das, wenn statt einer
HTML-Datei ein Datei zum Download angeboten wird.
Nacheinander: Erst abspeichern, dann zippen - vorausgesetzt, Du hast
den temporären Plattenplatz. Oder über eine Pipe (siehe oben), falls
Du beim Speichern wahlweise nach stdout schreiben kannst.
Und was, wenn ich die auch noch versenden will?
Das ist davon völlig unabhängig - darum kannst Du Dich kümmern, wenn
Du Deine Datei auf der Platte hast.
P.S.: Was ist als Backup eigentlich besser geeignet, manche habe ja
auch Datei-Zugriff auf den Datenbank-Server: Direkt die
entsprechenden Dateien zu speichern oder das über einen dunp zu
machen?
Kann ich die Dateien z.B. einfach auf einen anderen Datenbank-Server
kopieren oder muss man da was beachten (Time-stamp der Dateien,
Daten erst beim Server "anmelden") oder reicht es datadir
anzupassen?
Du mußt die Daten schon importieren. Irgendwoher muß der Server ja
wissen, daß Du eine neue Datenbank angelegt hast - der sucht nicht
ständig auf der Platte nach neuen Datenbanken, sondern wird sinn-
vollerweise ein Verzeichnis derselben führen.
Auch beim Exportieren fährst Du besser, wenn Du über die Schnittstel-
len gehst, die das RDBMS anbietet. Dann kann diese sich beispielsweise
darum kümmern, was passiert, wenn mitten in Deinem Sicherungslauf
jemand in eine Deiner Tabellen schreibt ... wenn Du direkt die Dateien
verwenden willst, solltest Du auf jeden Fall die Datenbank vorher
herunterfahren. Auf der anderen Seite kannst Du natürlich versuchen,
eine leere Datenbank anlegen und dann die Dateien, welche die Tabellen
repräsentieren, dort hinein kopieren - während das RDBMS auch hier
nicht aktiv ist. Vielleicht begreift mySQL das ja beim nächsten Start.
Viele Grüße
Michael