MySQL-Backup: mysqldump oder mysqlhotcopy ?
Hallo ML, Ich habe einen MySQL-Server 5.0 installiert, auf den mittelfristig etwa 15 User zugreifen werden. Die Datenmenge wächst sicherlich stetig. Ich möchte ein backup mittels cronjobs etablieren. Zuerst werden wir nur mit MyISAM-Tabellen arbeiten, ob wir mittelfristig auch InnoBD-Tabellen einsetzen werden, kann ich nicht abschätzen, da dies meine erste Berührung mit MySQL ist. Ich möchte alle Datenbanken backupen, aber beim restoren die Möglichkeit haben, nur einzelne zurückzuspielen. Ich kann mir nämlich gut vorstellen, daß sich einer seine DB zerschießt, wenn ich deswegen aber alle zurückspielen muss, sind die anderen User nicht sehr froh. Anzahl und Namen der Datenbanken werden sicher variieren, ich möchte dann nat. nicht dauernd mein backup dementsprechend anpassen müssen. mysqldump kann wohl auch InnoDB-Tabellen sichern, wird aber im Vergleich zu mysqlhotcopy als langsam bezeichnet. - Was empfehlt Ihr ? - Kann ich mit mysqlhotcopy ein backup aller Datenbanken mittels --regexp=[a-zA-Z0-9]\+ durchführen ? - kann ich mit mysqlhotcopy ein selektives restore machen, indem ich einfach nur das betr. directory dieser DB zurückspiele ? - kann ich bei mit mysqldump erstellten backups ein selektives restore einzelner Datenbanken machen ? Bernd -- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de phone: +49 89 3187 1241 fax: +49 89 3187 3826 http://www.helmholtz-muenchen.de/idg Im Kampf um das Unerreichbare verliert das Erreichte seinen Wert -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Lentes, Bernd schrieb:
Hallo ML,
Ich habe einen MySQL-Server 5.0 installiert, auf den mittelfristig etwa 15 User zugreifen werden. Die Datenmenge wächst sicherlich stetig. Ich möchte ein backup mittels cronjobs etablieren. Zuerst werden wir nur mit MyISAM-Tabellen arbeiten, ob wir mittelfristig auch InnoBD-Tabellen einsetzen werden, kann ich nicht abschätzen, da dies meine erste Berührung mit MySQL ist. Ich möchte alle Datenbanken backupen, aber beim restoren die Möglichkeit haben, nur einzelne zurückzuspielen. Ich kann mir nämlich gut vorstellen, daß sich einer seine DB zerschießt, wenn ich deswegen aber alle zurückspielen muss, sind die anderen User nicht sehr froh. Anzahl und Namen der Datenbanken werden sicher variieren, ich möchte dann nat. nicht dauernd mein backup dementsprechend anpassen müssen. mysqldump kann wohl auch InnoDB-Tabellen sichern, wird aber im Vergleich zu mysqlhotcopy als langsam bezeichnet.
Hallo Bernd, was hälst Du davon ? http://sourceforge.net/projects/automysqlbackup/ Das könnte erstmal Deinen Bedarf decken. -- Gruß Axel ------------------------------ => einen Server härten? google mal nach Stahl härten oder was meinst Du mit härten? Aus: http://www.administrator.de/index.php?content=69906 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Bernd, Am Donnerstag, 22. April 2010 schrieb Lentes, Bernd:
Hallo ML,
Ich habe einen MySQL-Server 5.0 installiert, auf den mittelfristig etwa 15 User zugreifen werden. Die Datenmenge wächst sicherlich stetig. Ich möchte ein backup mittels cronjobs etablieren. Zuerst werden wir nur mit MyISAM-Tabellen arbeiten, ob wir mittelfristig auch InnoBD-Tabellen einsetzen werden, kann ich nicht abschätzen, da dies meine erste Berührung mit MySQL ist. sobald Du irgendetwas mit Transaktionen machen musst, kommst Du mit MyISAM nicht mehr weiter.
Ich möchte alle Datenbanken backupen, aber beim restoren die Möglichkeit haben, nur einzelne zurückzuspielen. Ich kann mir nämlich gut vorstellen, daß sich einer seine DB zerschießt, wenn ich deswegen aber alle zurückspielen muss, sind die anderen User nicht sehr froh. Anzahl und Namen der Datenbanken werden sicher variieren, ich möchte dann nat. nicht dauernd mein backup dementsprechend anpassen müssen. mysqldump kann wohl auch InnoDB-Tabellen sichern, wird aber im Vergleich zu mysqlhotcopy als langsam bezeichnet.
- Was empfehlt Ihr ? so auf die Schnelle... mysqldump ist logischerweise wesentlich langsamer - schließlich wird ja dabei über die DB-Engine jeder einzelne Satz ausgelesen und als SQL-Statement ausgegeben. Das Kopieren der gesamten DB-Datei ist natürlich flotter. Ich persönlich würde eher zu mysqldump tendieren - wenn die Mengen nicht gerade absolut riesig sind, geht das ausreichend schnell und Du kannst die Daten auch wieder herstellen, wenn Du nach dem Crash nicht exakt dieselben Versionen der Software hast. Bei mysqlhotcopy wäre ich da vorsichtiger, weil Du ja nur die binären Daten hast, auf denen die Engine direkt arbeitet...
- Kann ich mit mysqlhotcopy ein backup aller Datenbanken mittels --regexp=[a-zA-Z0-9]\+ durchführen ? keine Ahnung, vermutlich... - kann ich mit mysqlhotcopy ein selektives restore machen, indem ich einfach nur das betr. directory dieser DB zurückspiele ? nach meiner Erfahrung ja - jedenfalls habe ich das beim einfachen Kopieren der Datenbankfiles auch schon erfolgreich gemacht und mysqlhotcopy macht ja da nichts anderes...
- kann ich bei mit mysqldump erstellten backups ein selektives restore einzelner Datenbanken machen ? Du bekommst ja Textfiles mit SQL-Statements, also kannst Du beliebig kleine Teile daraus wieder zurückspielen - wenn es sein muss, einzelne Datensätze. Ist dann aber evtl. etwas Arbeit, eine der Datenbanken aus dem Textfile herauszufischen ;-)
Gruß Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, ich möchte es nur mal in die Runde werfen da ich mal ein solches vorgehen im Einsatz gesehen habe, und zwar Das Backup mittels der lokalen Daten machen, hier lagen die Daten auf einer lvm2 partition, diese wurden dann einmal am Tag per cron einfach per snapshot gebackupt, snapshot mount und wegkopiert. Der Restore war dann eigentlich über einen Zweiten Mysqlserver geregelt. Also dem hochfahren eines seperaten und dem restore mittels python script (einfaches auslesen und einfügen). Der Vorteil ist ein sehr schnelles Backup dank lvm aber leider einem langsamen restore. Grüsse Am Donnerstag, den 22.04.2010, 19:53 +0200 schrieb Lentes, Bernd:
Hallo ML,
Ich habe einen MySQL-Server 5.0 installiert, auf den mittelfristig etwa 15 User zugreifen werden. Die Datenmenge wächst sicherlich stetig. Ich möchte ein backup mittels cronjobs etablieren. Zuerst werden wir nur mit MyISAM-Tabellen arbeiten, ob wir mittelfristig auch InnoBD-Tabellen einsetzen werden, kann ich nicht abschätzen, da dies meine erste Berührung mit MySQL ist. Ich möchte alle Datenbanken backupen, aber beim restoren die Möglichkeit haben, nur einzelne zurückzuspielen. Ich kann mir nämlich gut vorstellen, daß sich einer seine DB zerschießt, wenn ich deswegen aber alle zurückspielen muss, sind die anderen User nicht sehr froh. Anzahl und Namen der Datenbanken werden sicher variieren, ich möchte dann nat. nicht dauernd mein backup dementsprechend anpassen müssen. mysqldump kann wohl auch InnoDB-Tabellen sichern, wird aber im Vergleich zu mysqlhotcopy als langsam bezeichnet.
- Was empfehlt Ihr ? - Kann ich mit mysqlhotcopy ein backup aller Datenbanken mittels --regexp=[a-zA-Z0-9]\+ durchführen ? - kann ich mit mysqlhotcopy ein selektives restore machen, indem ich einfach nur das betr. directory dieser DB zurückspiele ? - kann ich bei mit mysqldump erstellten backups ein selektives restore einzelner Datenbanken machen ?
Bernd
-- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de phone: +49 89 3187 1241 fax: +49 89 3187 3826 http://www.helmholtz-muenchen.de/idg Im Kampf um das Unerreichbare verliert das Erreichte seinen Wert
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo zusammen, On Donnerstag 22 April 2010, Lentes, Bernd wrote:
Hallo ML,
Ich habe einen MySQL-Server 5.0 installiert, auf den
Warum nicht die aktuelle Version 5.1?
mittelfristig etwa 15 User zugreifen werden. Die Datenmenge wächst sicherlich stetig. Ich möchte ein backup mittels cronjobs etablieren. Zuerst werden wir nur mit MyISAM-Tabellen arbeiten, ob wir mittelfristig auch InnoBD-Tabellen einsetzen werden, kann ich nicht abschätzen, da dies meine erste Berührung mit MySQL ist.
Ich rate vom Einsatz von MyISAM ab, da sie nicht transaktionssicher sind. Ich hatte das gerade wieder, dass einer meiner Server stehengeblieben ist, weil die Platte volllief (ja ich schäme mich ;) ) und danach einige MyISAM-Tabellen zerschossen waren. Macht viel unnötige Arbeit.
Ich möchte alle Datenbanken backupen, aber beim restoren die Möglichkeit haben, nur einzelne zurückzuspielen. Ich kann mir nämlich gut vorstellen, daß sich einer seine DB zerschießt, wenn ich deswegen aber alle zurückspielen muss, sind die anderen User nicht sehr froh. Anzahl und Namen der Datenbanken werden sicher variieren, ich möchte dann nat. nicht dauernd mein backup dementsprechend anpassen müssen. mysqldump kann wohl auch InnoDB-Tabellen sichern, wird aber im Vergleich zu mysqlhotcopy als langsam bezeichnet.
- Was empfehlt Ihr ?
Ich empfehle mysqldump. So langsam ist das gar nicht. Beispielsweise hat mein fettester Server (ca. 5 Gig Daten verteilt auf diverse DBs) gestern nacht gerade mal 2 Minuten für das Backup inkl. verpacken und auf den Backupserver verschieben gebraucht. Naja, die Maschine hat einen Quadcore mit 2,1 GHz und 8 Gig Speicher. Aber auch auf langsameren Maschinen braucht das keine Ewigkeit. Was deutlich länger dauert, ist das Rücksichern. Hier ist ein netter Vergleich der beiden Methoden: http://tinyurl.com/zbtfo9 (führt auf eine Unterseite von http://oliver.jusinger.at)) Wie Du da sehen kannst, ist der Unterschied beim Rücksichern auch nicht so dramatisch. Der Vorteil liegt in der Kompatibilität. Dumps kannst Du in fast jede MySQL-Version zurückschreiben. Die mit mysqlhotcopy nur in die, aus der sie stammen. Ein weiterer Vorteil bei Servern, die auch direkt über das Netz erreichbar sind, liegt darin, dass ich mit einem Client von außen das Backup gleich auf einen Backupserver ziehen kann. Vor allem bei knappen Plattenplatz ein echter Vorteil. Um alle DBs einzeln zu sichern, würde ich ein Skript schreiben. Ich persönlich würde Perl bevorzugen. Aber jede andere Sprache, die eine MySQL-Schnittstelle hat, geht natürlich auch. Vom Prinzip geht das so: mit show databases; die vorhandenen DBs auslesen und dann eine Schleife schreiben, die alle gefundenen dumped. Liebe Grüße Erik -- "Wenn du den letzten Zug getan hast ... die letzte Rauchwolke sich blau in der Luft verflüchtigen gesehen hast, ist es für eine sensible Natur unmöglich, nicht eine gewisse Melancholie zu empfinden." W. Somerset Maugham Erik P. Roderwald * Uhlenhoffweg 18 * 21129 Hamburg Telefon: +49 (0)40 8510 3150 * Fax: +49(0)40 8510 3148 http://www.zigarren-rollen.de http://www.roderwald.de http://forum.roderwald.de http://twitter.com/erikrode -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Erik Roderwald schrieb:
Warum nicht die aktuelle Version 5.1?
Was hätte die für einen Vorteil gg. 5.0 ?
Ich empfehle mysqldump. So langsam ist das gar nicht.
Ich denke, es läuft auf mysqldump hinaus.
Um alle DBs einzeln zu sichern, würde ich ein Skript schreiben. Ich persönlich würde Perl bevorzugen. Aber jede andere Sprache, die eine MySQL-Schnittstelle hat, geht natürlich auch. Vom Prinzip geht das so:
mit show databases; die vorhandenen DBs auslesen und dann eine Schleife schreiben, die alle gefundenen dumped.
Der Vorschlag von Axel kann das, ich denke ich nehme das: http://sourceforge.net/projects/automysqlbackup/ Scheint ein wrapperskript für mysqldump zu sein. Bernd-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo zusammen, On Freitag 23 April 2010, Lentes, Bernd wrote:
Warum nicht die aktuelle Version 5.1?
Was hätte die für einen Vorteil gg. 5.0 ?
guckst Du hier: http://dev.mysql.com/doc/refman/5.1/en/news-5-1-x.html Auch lesenswert: http://www.rootforum.org/forum/viewtopic.php?f=104&t=50167 Dem Fazit kann ich mich nur anschließen: 5.1 kann alles, was 5.0 kann, allerdings stabiler und schneller. Liebe Grüße Erik -- "Das Leben ist eine Suppe mit vier tröstlichen Markknochen: der Trunk, die Liebe, der Tabak und die Kunst." Felix Timmermans Erik P. Roderwald * Uhlenhoffweg 18 * 21129 Hamburg Telefon: +49 (0)40 8510 3150 * Fax: +49(0)40 8510 3148 http://www.zigarren-rollen.de http://www.roderwald.de http://forum.roderwald.de http://twitter.com/erikrode -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
Axel Birndt
-
Erik P. Roderwald
-
Jörg Stephan
-
Lentes, Bernd
-
Martin Hofius