PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Grosse mySQL Dumps mit MySQLDumper



redlabour
15.11.2004, 12:51
s. auch : http://www.unixboard.de/comments.php?catid=25&id=713

Vielleicht erübrigen sich hiermit auch mal Fragen wie man richtig grosse Dumps hinbekommt. ;)

Das Teil ist einfach nur klasse.

TenBaseT
15.11.2004, 22:20
Versteh die Frage nicht so ganz. Ich würde mit /usr/bin/mysqldump ...... einen Dump erzeugen und dann zippen (oder geht das gar mit mysqldump direkt?)

So ähnlich verfahre ich mit meiner Firebird Datenbank. Dann werden aus 325 MB mal gerade noch 35 MB dumpfile.

Hans

redlabour
15.11.2004, 22:36
Welche Frage ? Das ist eine News ! :D :D :rolleyes:

damager
16.11.2004, 07:29
nix für ungut: "Grünschnabel" (Registrierungsdatum: Nov 2004)
da kann man ein auge zu-drücken :D *scnr*

damager
16.11.2004, 08:07
ach ja,
das teil ist ja echt klasse :]
*top*

etuli
16.11.2004, 13:24
Versteht nicht, was der nichtssagende Status damit zu tun hat. mysqldump durch gzip, oder bzip2 jagen und anschliessend wieder in mysql, kann wohl jeder.

redlabour
16.11.2004, 13:51
BTT - please.

BTW - @etuli - darum geht es auch nicht hauptsächlich bei MySQLDumper.


MySqlDumper mit PHP ist eine Backuproutine für MySQL-Datenbanken.

Entstanden ist sie aus folgendem Grund:

PHP-Scripte werden nach einer bestimmten Laufzeit abgebrochen (normalerweise nach 30 Sekunden) und so funktioniert ein Backup, mit zum Beispiel phpMyAdmin, nur bis zu einer bestimmten Größe. Braucht das Script länger als die 30 Sekunden, so wird es vom Server einfach abgebrochen und man kommt nicht mehr an sein Backup ran.
Gleiches gilt für das Wiedereinspielen eines Backups.
Wer einmal ein Dumpfile von Hand in viele kleinere Einzelabschnitte zerlegt hat, um eine Datenbank wieder herzustellen, der weiß genau wovon ich rede.

Ich habe verzweifelt im Internet nach einer Lösung gesucht, aber alle Scripte, die ich gefunden habe, liefen auch auf den Timeout-Error.
Also musste ich mir selbst helfen und hier ist nun das Ergebnis.

Mein Script umgeht den Timeout-Error mit Hilfe eines kleinen Tricks:
Es liest nur eine bestimmte Anzahl von Befehlen aus der Tabelle aus, merkt sich wie weit es gekommen ist und ruft sich anschließend selbst auf. Dadurch erhält das Script bei jedem Aufruf wieder die vollen 30 Sekunden und so umgehe ich den Timeout-Error.
Das gleiche Prinzip benutze ich dann auch beim Wiederherstellen der Daten.

Das Script kann die Daten beim Sichern sofort packen und in eine „.gz“-Datei speichern.
Auch das Wiederherstellungsscript kann direkt aus dieser gepackten Datei lesen, ohne dass sie auf dem Server entpackt werden muss!
Natürlich kann man die Datei auch ungepackt lassen, aber spätestens beim Hochladen eines Backups weiß man dies zu schätzen.

Wer will kann sich mein Script herunterladen und damit dann Sicherungen seiner MySQL-Datenbank anlegen.

redlabour
07.12.2004, 10:30
Das neue Release ist da : http://www.unixboard.de/comments.php?catid=25&id=739

damager
07.12.2004, 16:13
The selected Attachment does not exist anymore
download funtzt bei mir nicht???

redlabour
07.12.2004, 16:42
http://www.mysqldumper.de/board/viewtopic.php?t=284

redlabour
07.01.2005, 16:12
Und endlich gehts weiter : http://www.unixboard.de/comments.php?catid=25&id=787

tr0nix
07.01.2005, 16:22
http://ch2.php.net/manual/de/function.ini-set.php
max_execution_time "30"

Lässt sich doch sicher irgendwo in phpmyadmin Konfigurieren? Ansonsten in php.ini

redlabour
07.01.2005, 17:51
Wie meinen ?

tr0nix
07.01.2005, 18:11
Mein Script umgeht den Timeout-Error mit Hilfe eines kleinen Tricks:
Es liest nur eine bestimmte Anzahl von Befehlen aus der Tabelle aus, merkt sich wie weit es gekommen ist und ruft sich anschließend selbst auf. Dadurch erhält das Script bei jedem Aufruf wieder die vollen 30 Sekunden und so umgehe ich den Timeout-Error.
Das gleiche Prinzip benutze ich dann auch beim Wiederherstellen der Daten.
Ist doch ein Witz wenn man mit set_ini einfach den Timeout verlängern kann.. also meine Meinung... (ausser wenn man natürlich das ganze bei nem Hoster hat wo man die Settings nicht ändern kann)

(Edit: Hurra! 500 Posts! Ich bin ein richtiger HAUDEGEN! Aber nicht hau-dagegen bitte!)

redlabour
07.01.2005, 18:22
(ausser wenn man natürlich das ganze bei nem Hoster hat wo man die Settings nicht ändern kann)

Das ist der Sinn der Sache ! :D

BTW - aber auch mit einem Rootserver würde ich es jederzeit nutzen - einen komfortableren Weg von unterwegs die Backups durchzuführen oder zu restoren muss man erstmal finden.

devilz
07.01.2005, 19:01
Das ist der Sinn der Sache ! :D

BTW - aber auch mit einem Rootserver würde ich es jederzeit nutzen - einen komfortableren Weg von unterwegs die Backups durchzuführen oder zu restoren muss man erstmal finden.

ssh -> mysqldump -> mysql

Wo is das bitte umständlich ?

DSB
07.01.2005, 20:57
Hallo,

unser Script richtet sich an die Millionen User, die für wenig Geld einen 0815-Webspace ohne SSH aber mit PHP- und MySQL-Unterstützung haben und die auch ein Backup ihrer Datenbank haben möchten.
Wer einen SSH-Zugang besitzt benötigt unser Script nicht unbedingt, aber wer sich einmal die Möglichkeiten angesehen hat, ist doch recht schnell von der mittlerweile komfortablen Oberfläche angetan.
Man kann bereits eine ganze Menge mit unserem MySQLDumper machen.
@ trOnix und devilz
Schaut es euch doch einfach mal an bevor ihr urteilt.
Unser Ziel ist es, dass sich wirklich jeder User ein Backup seiner Datenbank runterladen kann und wir sind unserem Ziel verdammt nah auf den Fersen.

redlabour
07.01.2005, 22:43
Full ACK - ohne wäre ich aufgeschmissen ! Benutze es unterwegs und lokal von zu Hause http://www.dumptimer.com !

tr0nix
07.01.2005, 23:00
Hallo,

unser Script richtet sich an die Millionen User, die für wenig Geld einen 0815-Webspace ohne SSH aber mit PHP- und MySQL-Unterstützung haben und die auch ein Backup ihrer Datenbank haben möchten.
Wer einen SSH-Zugang besitzt benötigt unser Script nicht unbedingt, aber wer sich einmal die Möglichkeiten angesehen hat, ist doch recht schnell von der mittlerweile komfortablen Oberfläche angetan.
Man kann bereits eine ganze Menge mit unserem MySQLDumper machen.
@ trOnix und devilz
Schaut es euch doch einfach mal an bevor ihr urteilt.
Unser Ziel ist es, dass sich wirklich jeder User ein Backup seiner Datenbank runterladen kann und wir sind unserem Ziel verdammt nah auf den Fersen.
Hi DSB

War auf keinen Fall persönlich gemeint. Ich schätze jede Arbeit, die das Leben von "normalos" in der Open-Source und Unix Welt unterstützen (ich selbst bin der Author von Bash Menubuilder (http://freshmeat.net/projects/menubuilder/), eines eigentlich total unnützen Tools mit trotzdem 7000 Freshmeat Hits ;-) (BTW. das ist ausm 2001, bitte Code nicht auditen, ist mega durcheinander hehe)). Für mich war nur die eine Begründung nicht ganz legitim ;-)! Also nichts für ungut!

Gruss
Joel

DSB
07.01.2005, 23:15
Hallo trOnix,

Deine jetzige Äußerung ist ja auch in Ordnung.
Aber Dein Posting:

Ist doch ein Witz wenn man mit set_ini einfach den Timeout verlängern kann
empfinde ich als Ohrfeige (besonders wenn Du Dich nicht mit dem eigentlichen Thema/Board beschäftigt hast und unabhängig davon, ob Du es nun persönlich meinst oder nicht).
Deshalb habe ich mich hier auch geäußert.
Da steckt über ein Jahr Entwicklungsarbeit drin und unser Ziel habe ich ja beschrieben.
Das als "Witz" zu bezeichnen finde ich mehr als dreist.

tr0nix
07.01.2005, 23:56
Hi DSB

So spreche ich natürlich nur, wenn sich niemand betroffen fühlen wird (so wie es scheint hast du dich ja auch eben erst registriert).

Aber zu argumentieren, ein anderes Tool zu benutzen, obwohl man den Execution-Timeout in den meisten Fällen erhöhen kann (wenn der safe_mode nicht on ist, was er bei vielen Hostern nicht ist), wäre ein IMHO Overhead und in meinen Augen ein Witz.

Ich will mich hier erklären, jedoch nicht entschuldigen für meine Äusserungen - aber ich bin echt vorgeschädigt da an meinem Arbeitsort alles doppelt erfunden wird und wir dann dies noch benutzen müssen. Deshalb neige ich schneller zu bestehende Tools genau validieren bevor was neues her muss.

Gruss
Joel

DSB
08.01.2005, 00:12
Aber zu argumentieren, ein anderes Tool zu benutzen, obwohl man den Execution-Timeout in den meisten Fällen erhöhen kann (wenn der safe_mode nicht on ist, was er bei vielen Hostern nicht ist), wäre ein IMHO Overhead und in meinen Augen ein Witz.

Nein, Du verstehst nicht.
Den PHP-Timeout zu erhöhen heißt lediglich das Problem nach hinten zu verschieben, aber nicht es zu lösen.
Unser Script löst es, weil es die Grenze ausliest und sich dann intelligent danach richtet!
Wir haben in der Praxis eine über 5 Gigabyte große Datenbank problemlos von Provider A nach B kopieren können.

Insofern handelt es sich nicht um sinnlosen Overhead sondern um eine durchaus praktikable Lösung.
Das hättest Du alles sehen können, wenn Du Dich mit unserem Script auseinandergesetzt hättest, was Du aber offensichtlich nicht getan hast.
Und deshalb bleibe ich dabei: schau es Dir an bevor Du urteilst!

tr0nix
08.01.2005, 01:02
Grosses sorry Meister, jedoch würde ich auch solch ein Problem durch ein selbstgeschriebes kleines PHP Script lösen, als dass ich mich mit noch mehr 3t-Anbietersoftware beschäftige (zudem reicht die max exec timeout-Lösung wohl für die meisten Web-DB's - die wenigsten werden wohl 5gb sein).

Ich denke die Diskussion verläuft sich langsam, ich habe oftmals andere Ansichten als meine Mitmenschen weil ich Dinge hald oftmals leichter finde selber zu schreiben als die Handhabung anderer Dinge zu verstehen. Lies doch einfach nochmals den 19ten Beitrag in diesem Topic und glaube mir, dass ich deine Arbeit (auch ungesehen) anerkenne.

Gruss
Joel

BTW. Devilz: aus reiner Neugier - wie gross ist eigentlich die Unixboard DB?

redlabour
17.01.2005, 23:02
Weiter gehts mit der nächsten BETA ! ;)

http://www.unixboard.de/comments.php?catid=25&id=813

NiceDay
18.01.2005, 08:18
Also ich kann nur sagen, dass ich das unheimlich praktisch finde, gerade auf Rechnern wo man eben kein SSH hat, z.B. VirtualHosting o.ä.

Meister Lampe
07.02.2005, 16:01
hmmm. ich bin ja recht neu im debian-umfeld, aber die mysql-db will partou nicht mit dem tool arbeiten. sagt mir immer "Lost connection to MySQL server during query". Jedenfalls wenn das Script auf meinem Mac läuft und auf den großen Rechner zugreift. Vom Debian aus geht gar nichts, nur weißer Content-Bereich :-(

Nachtrag: Unter phpMyAdmin geht alles einwandfrei, nur so nebenbei.

Nachtrag 2: Ich habe das Problem gelöst. Man muss auch die MySQl-API aktivieren... phpMyAdmin geht ja über die Abstraktion... Depp ich...