Mailinglisten-Archive |
Hi Christian, >Ja aber Puretec hat ein Skriptlimit von 6 Sekunden und da ist meine >RiesenDB nur zu ca. 10% im Backup... Dann schreib dir doch ein Skript, mit dem du das Backup splitten kannst... Bau dir eine Funktion, an die du Tabellenname, Start Id und einen Limit Wert uebergibst (z.B. 1.000 oder 10.000). Dann machst du einen einfachen "SELECT * FROM $tabelle LIMIT $start, $limit" und gehst die Ergebnismenge Zeile fuer Zeile durch. Pro Zeile haengst du die Werte dann durch ein Trennzeichen aneinander, wobei du darauf achten solltest, dass dein Trennzeichen nicht selber in den Werten vorkommt. Diese Werte-Ketten schreibst du dann in eine Datei, wobei du sogar, wenn moeglich, gzopen(), gzwrite() und gzclose() verwenden kannst. Am Ende File schliessen und raus aus der Funktion. Dann brauchst du nur noch ein Skript, welches die Funktion mit Werten versorgen kann. Mit einem "SHOW TABLES" erhaeltst du alle Tabellen aus deiner DB. Durchlaufe die Ergebnismenge mit einer Schleife und hol dir fuer jede Tabelle die Anzahl aller Eintraege. Dann baust du dir solch eine Schleife: for ($i=0; $i<$count; $i = $i + $limit) { echo "<A HREF=\"skript.php4?tabelle=" . $tabelle . "&start=" . $i . "\">" . $i . "</A><BR>"; } Wobei $tabelle der Name der jeweiligen Tabelle, $count die Anzahl der Eintraege pro Tabelle und $limit dein festgelegter Wert ist. Beim Aufruf des Skriptes durch Klick auf einen der Links, pruefst du die Werte und schickst sie an deine obige Funktion zum partiellen Downloaden der Datei. Einfach nacheinander auf die einzelnen Links klicken und jeweils eine einzelne Datei erstellen lassen. Natuerlich kannst du auch pro Tabelle eine Datei erstellen, je nachdem wie du willst. Den Limitwert kannst du im Kopf des Skriptes definieren und anpassen, je nachdem wie viel du abarbeiten kannst, bevor das Skript abbricht. Fuer den Upload der Daten bastelst du dir dann einfach ein Skript, welches aus den Dateien INSERT Statements bastelt, und kannst dann den Rotz auch lokal wieder hochladen... Dies laesst sich natuerlich noch erweitern und verbessern, aber vielleicht hilft es dir ja als Denkanstoss. Du hast damit natuerlich keinen Mysqldump, den du einfach so wieder einspiele kannst, aber du kannst deine Funktion ja auch so bauen, dass ein Mysqldump nachgebaut wird. Ich hatte mir irgend wann auch mal sowas gebastelt und es klappte vorzueglich. Leider find ich das in meinem momentanen Chaos hier aber nicht mehr. Sollte aber inkl. Testen in zwei, drei Stunden erledigt sein und dann hast du mit dem Backup keine Sorgen mehr... Gruss, Ralf -- __________________________________________ In-Greece.de - die Griechenlandcommunity _______ http://www.in-greece.de/ _________
php::bar PHP Wiki - Listenarchive