MySQL dump automatisieren

Tach Community,

ich moechte meine Datenbanken sichern.
nun koennte ich das mit MySQLadmin machen… allerdings…
muesste ich da jede einzelne datenbank anfassen…
und das ist mir zu zeitaufwaendig…zumal ich zum teil den dump sogar noch tableweise splitten muss, weil s sonst einen timeout gibt (maximale laenge fuer ausfuehrbares script)

also… will ich mir schnell (?!) ein kleines scriptchen basteln
welches erkennt… welche tables in der DB sind… und
table fuer table als tablename.sql sichert und in einem verzeichnis auf dem webserver abspeichert.
dass es geht weiss ich … aber ich denke , mein script ist zu aufwaendig… momentan lese ich den inhalt komplett ein… und speichere den in einer datei… gibt es kein mysql_dump_table(filename) oder sowas? dasss ich das nicht manuell machen muss ? ich denke das geht dann naemlich schneller… hatte schon versucht im quellcode von mysqladmin zu schnueffeln…aber das ist mir irgendwie too much :smiley:

danke fuer den grandiosen tip :smile:

grusz

Pixel

Tach Community,

ich moechte meine Datenbanken sichern.
nun koennte ich das mit MySQLadmin machen… allerdings…
muesste ich da jede einzelne datenbank anfassen…
und das ist mir zu zeitaufwaendig…zumal ich zum teil den dump
sogar noch tableweise splitten muss, weil s sonst einen
timeout gibt (maximale laenge fuer ausfuehrbares script)

also… will ich mir schnell (?!) ein kleines scriptchen
basteln
welches erkennt… welche tables in der DB sind… und
table fuer table als tablename.sql sichert und in einem
verzeichnis auf dem webserver abspeichert.

foreach (dbquery("show tables") as $tablename)
 {
 `mysqldump '$dbname' '$tablename' \>'$tablename.sql'`;
 }

foreach (dbquery(„show tables“) as $tablename)
{
mysqldump '$dbname' '$tablename' \>'$tablename.sql';
}

ich bin begeistert.
einziges problem mit der scriptausfuehrung.
mal schaun obs vom timeout hinhaut… sonst
muss ich mir da noch was ausdenken

aber danke erstmal

grusz

PixelKoenig

Hi Pixel!

Damit deine PHP-Scripte länger laufen als in der php.ini angegeben, kannst du folgendes am Anfang deines Scriptes setzen:

set_time_limit(360);

Dies würde dein Script auf 360 Sekunden maximale Ausführzeit setzen.

Viele Grüße
André

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo PixelKönig,

ich habe mir fuer diese Aufgabe ein Script geschrieben, was die Session-Funktion von PHP dafuer benutzt um sich die Position des Dumps zu sichern.
Dazu lese ich zu allererst die Tabellen in ein (Session)Array. Danach gehe ich jede Tabelle einzeln durch wobei ich auch eine maximale Zeilenanzahl beruecksichtige.
Das Script ruft sich per Refresh (Meta & JavaScript) bis alle Tabellen abgearbeitet wurden automatisch selber wieder auf und legt die Daten auf dem Server ab so das sie gut per FTP downloadbar sind.

Hoffe einen Denkanstoss gegeben zu haben.

Gruss
Stefan

ich habe mir fuer diese Aufgabe ein Script geschrieben, was
die Session-Funktion von PHP dafuer benutzt um sich die
Position des Dumps zu sichern.
Dazu lese ich zu allererst die Tabellen in ein (Session)Array.
Danach gehe ich jede Tabelle einzeln durch wobei ich auch eine
maximale Zeilenanzahl beruecksichtige.

versteh ich nicht ganz: du hast so viele daten, dass du sie in 30sec nicht dumpen kannst, laedst sie aber alle in den arbeitsspeicher?