Michael Schröpl: MySQL-Backup über cronjob

Beitrag lesen

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