| Homepage | CGI/Perl Scripte | PHP Scripte | Artikel | CGI-Perl Workshop | SELFHTML | SELFPHP | Linkdatenbank | Grafikdownloads |
![]() |
|
|
#1 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi @All,
Nachdem es mich ja nun auch betrifft größere Datenbestände einer MySQL Datenbank zu sichern, und im Falle des Falles wieder einspielen zu müssen, hab ich mir dazu mal paar Gedanken gemacht. Grund: das berühmt berüchtigte Timeout bei großen Datenbeständen. Es hat ja auch nicht jeder einen Server mit entsprechenden Zugriffsrechten. Lösungsansatz: Sichern der Inhalte Stückweise (etwa 2000-3000 Inserts) in eine Datendatei. Meine Versuche dazu sind bis jetzt recht vielversprechend. Es lassen sich damit per Browser beliebigst große Datenbestände sichern. Ein paar Screenshots dazu: Konfigurieren der Datenbanken ![]() Datenbank auswählen zum sichern ![]() Backup der Tabellendefinitionen ![]() Gestaffeltes sichern der Inhalte ![]() Beim einspielen des Backups werden dann die Backupdateien gelesen und die Inserts wieder Paketweise in die DB geschrieben. Das ist allerdings noch nicht fertig. 1. Eure Meinung dazu? 2. Wer hat Datenbanken die frei sind und Lust zum testen? Ich würde demjenigen dann, wenn es soweit ist, das Script zum testen senden. Ich hoffe das ich mit dem Teil allen helfen kann die Probleme beim sichern und wiedereinspielen von Backups haben, bedingt durch Timeouts. Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#3 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
das Script legt einen Satz Backupdateien auf dem Server an die man runterlädt, beim zurückspielen in die DB lädt man die Dateien in das restore Verzeichnis und startet den Vorgang. Wie gesagt, kleine DB Backups bekommt man mit fast jedem Script hin, hat man aber DB's mit vielen Daten klappt das meist nicht. Durch das splitten der Insertdateien kann man aber auch Backups von Gigabyte Größe zurückspielen. Die Dateien sehen dann, hier noch ungezippt, in etwa so aus: ![]() Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#4 |
|
Registrierter Benutzer
Member
Registriert seit: 06.2004
Beiträge: 107
|
zu 1) find ich gut! hab schon selber per hand datei zerlegen müssen als ich das backup aufspielte...
zu 2) hab eigenen server, kann dir soviele datenbanken einrichten wie du möchtest... welche funktion ich auch gut finden würden: sichert nur von bestimmten tabellen, und zwar gibt es leufte die ja nur eine db haben, auf dieser 5 oder 6 verschiedene systeme laufen, sei es cms und bb oder sonstiges... in den meisten cms-systemen sind schon die bachup-funktionen meistens vorhanden, und doppelsicherung muss ja auch nicht sein.... nur eine überlegung... |
|
|
|
|
|
#5 |
|
Registrierter Benutzer
Registriert seit: 11.2002
Ort: Neustadt
Beiträge: 21
|
Hallo Helmut,
würde dieses gerne auch Testen, da ich sehr große Datenbanken habe und das ein haufen Arbeit ist diese wieder aufzuspielen. Gruß Geiser |
|
|
|
|
|
#6 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
soderle, 2 Verbesserungen sind noch eingebaut. 1. Das entpacken der Backups erfolgt gestaffelt bei vielen Dateien 2. Die zu sichernden Tabellen können per Checkbox markiert werden. Muss das ganze noch bischen testen, sieht aber schon gut aus. Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#7 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
wer das Script selbst einmal testen möchte kann dies unter http://www.inspire-world.de/cgiservice/index.shtml MySQL Backup & Restore herunterladen. Bei Fragen, Problemen, Hinweisen bitte in diesen Thread posten. Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#8 |
|
Registrierter Benutzer
Board-Member
Registriert seit: 07.2002
Ort: Bielefeld
Beiträge: 647
|
Hi.
Ich werde es mal ausprobieren, auch wenn die DB noch nicht so groß ist. ![]() MfG Mamo
__________________
|
|
|
|
|
|
#9 |
|
Registrierter Benutzer
Registriert seit: 06.2004
Beiträge: 6
|
@Helmut
Ich habe hier im vB-Forum schon mein Post zum akt. Prob abgesetzt. in der HJoffnung, dass Du hier eher mal nachschaust, habe ich mich mal hier angemeldet. Durch die Restore-Versuche habe ich nun blöderweise meine Master-SQL angeklickt (deppert ... und nicht aufgepasst). Als Folge davon ist die plötzlich leer d.h. alle Felder 0 Einträge und ich bekomme den Kram, wegen des o.a. Probs, nicht zurückgespeichert. Als Folge davon ... mein Board liegt platt! Ist irgendwie nicht mein Tag heute. Ich hoffe, Du kannst mir schnell mal aus dem Sulki helfen. Thx schon mal. |
|
|
|
|
|
#10 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
nun da haste ja einen Gau eingerührt. Ob ich da viel machen kann weiss ich nicht. Aber wenn Du ein komplettes Backup hast (hoff ich für Dich) müsste das ja auch wieder einzuspielen gehen. Zumindest hat das bei mir immer geklappt. Bei der Auswahl der DB musste aber schon selber genauestens hinschauen. Das was Du im VB-Board geschrieben hast deutet darauf hin das Du die Dateien nicht am richtigen Fleck hast. Der Backupsatz muss zum restoren erstmal entpackt werden, das ist die .tar Datei des downloadbaren Gesamtbackups. Dann muss das ganze in das HTML Verz. des Scriptes. Von da werden die Dateien dann nach restore/files enpackt und sollten als .sql Dateien vorliegen. Danach geht es mit der Restore Prozedur los. Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#11 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
hier nochmal paar Screenshots zur Orientierung. 1. Upload der einzuspielenden Daten in das HTML Verz. ![]() 2. nach dem Entpacken müsen die so im restore/files Verz. liegen. ![]() 3. Anzeige der entpackten Dateien, hier dann die richtige DB auswählen zum einspielen der Daten ![]() 4. Wenn die createstatement.sql eingespielt wurde werden die Tabellennamen angezeigt und die Inhalte können eingespielt werden ![]() Die Screenshots stammen aus einem Test den ich jetzt gerade bei Puretec gemacht hab. Wie gesagt, das A und O ist das man beim Restore die richtige Datenbank auswählt, das steht eigentlich auch als Hinweis da. Den Schritt kann ich leider auch niemandem abnehmen... ![]() Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#12 |
|
Registrierter Benutzer
Registriert seit: 06.2004
Beiträge: 6
|
Also... ein Backup hatte ich gottseidank downgeloadet. Ich bin jetzt noch einmal wie folgt vorgegangen:
1. die .tar Datei des downloadbaren Gesamtbackups habe ich local entpackt 2. die darin enthaltenen *.sql.tar.gz Files habe ich nach /meinedomain/sqlback hochgeladen 3. ich starte das restore ... und erhalte wieder Fehlermeldung: Fehler: Kann Eintrag createstatement.sql nicht finden! Es ist ein fataler Scriptfehler im Modul "FRWtools" bei Zeile 189 aufgetreten. Das verfl.... createstatement.sql liegt ja fast in jedem Sub .. als *.SQL und auch als *.SQL.TAR.GZ hab ich überall schon hochgeladen. Zur Information ... die Felder in der DB sind bereits vom ersten Restore-Versuch alle vorhanden ... oder muss ich die alle löschen ? Kann aber doch nicht sein.... sollte doch wurscht sein ob die Felder (jetzt leer) da sind oder nicht! |
|
|
|
|
|
#13 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
Du könntest mir ja mal Deine URL und FTP Daten senden. Ich würde mir das gern mal ansehen was und warum es da klemmt. So wie jetzt fisch ich und Du da morgen noch im trüben. Bitte spiele dazu das Backup hoch und sage mir genau in welche DB das Backup rein soll. Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] |
|
|
|
|
|
#14 |
|
Registrierter Benutzer
Registriert seit: 06.2004
Beiträge: 6
|
Txh... hast Post, aber wirste ja merken.
|
|
|
|
|
|
#15 |
|
Moderator
Registriert seit: 04.2001
Ort: Brand-Erbisdorf
Beiträge: 24.123
|
Hi,
jupp, habs gelesen, und Du bekommst gleich haue von Mama.... ![]() Warum? Der chmod des restore Verzeichnisses war nämlich nicht wie gefordert 777. Dadurch hat es Dir auch deine Dateien nicht dahin entpackt. Das dann die Fehlermeldung kommt das die Dateien nicht gefunden werden ist die logische Folge. Ich werd aber in das Script noch einen Check einbauen der auch die chmod testet und wenn nötig Warnungen ausgibt. Noch ein wichtiger Tipp: Bedenke das bei Puretec eine DB nur max. 100MB groß werden darf. Ansonsten crash. Du hast nämlich jetzt schon einige Daten drin... Cu Helmut
__________________
[Nur wer selber mal probiert lernt auch dazu] Geändert von Helmut (15.06.2004 um 13:18 Uhr) |
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|