Page 1 of 1
mysqldump Alternativen
Posted: 2005-12-13 15:29
by afrika123
Gibt es eine Alternative zu mysqldump?
Meine Datenbank scheint zu groß zu sein, um mit diesem Befehl gesichert zu werden.
Als Alternative sehe ich nur die Möglichkeit die daten aus dem mysql ordner zu sichern, aber vielleicht gibt es ja auch etwas anderes
Re: mysqldump Alternativen
Posted: 2005-12-13 16:09
by snowball
Hi,
zu groß? Das müssen ja gewaltige Datenmengen sein. Wenn du nicht grade von der Datenbank des SETI Projektes sprichst, kann ich mir das ehrlich gesagt nur schwer vorstellen. Aber wie auch immer, eine Alternative wäre z.B. mysqlhotcopy
Viele Grüße
Jochen
Re: mysqldump Alternativen
Posted: 2005-12-13 16:39
by afrika123
Werde ich mal probieren.
Code: Select all
mysqlhotcopy -hlocalhost -udeinUser -pdeinPasswort deineDB > db.sql
und wie wird das zurückgesichert?
Code: Select all
mysql -hlocalhost -udeinUser -pdeinPasswort deineDB
?
Die Datenbank hat so 1100 Tabellen und diese haben bis zu 40.000 Einträge. Also sind es schon ein paar Daten, die da zusammenkommen.
Re: mysqldump Alternativen
Posted: 2005-12-13 16:51
by snowball
afrika123 wrote:Werde ich mal probieren.
Code: Select all
mysqlhotcopy -hlocalhost -udeinUser -pdeinPasswort deineDB > db.sql
und wie wird das zurückgesichert?
Code: Select all
mysql -hlocalhost -udeinUser -pdeinPasswort deineDB
?
Die Datenbank hat so 1100 Tabellen und diese haben bis zu 40.000 Einträge. Also sind es schon ein paar Daten, die da zusammenkommen.
Nicht ganz:
Code: Select all
/usr/local/mysql/bin/mysqlhotcopy [DB] [BACKUPORDNER] -u=[USER]--password=[PWD]
Damit wird eine Kopie deins Datenbank-Ordners angelegt. Wenn du die Datenbank zurückspielen willst, einfach DB runterfahren und den Ordner wieder an seinen alten Platz kopieren. Soweit ich weiß, funktioniert das aber nur mit MyISAM Tabellen und nicht mit InnoDB.
Re: mysqldump Alternativen
Posted: 2005-12-13 16:53
by afrika123
Bin ich ja mal gespannt.
Vielleicht liegt es auch an der Ausführungszeit.
Ich mache das mit putty. Vielleicht dauert es länger die db zu sichern und deshalb wird unterbrochen.
Re: mysqldump Alternativen
Posted: 2005-12-13 17:01
by snowball
Dann mache das ganze doch entweder mit screen, oder schiebe es mit & in den Hintergrund. Dann läuft es auch weiter, wenn du getrennt wirst.
Re: mysqldump Alternativen
Posted: 2005-12-13 17:04
by afrika123
Wie meinst Du das mit & ?
Re: mysqldump Alternativen
Posted: 2005-12-13 17:39
by snowball
Naja, einfach an den Befehl ein & setzen (natürlich mit Leerzeichen) dann wird der Befehl in den Hintergrund geschoben.
Code: Select all
/usr/local/mysql/bin/mysqlhotcopy [DB] [BACKUPORDNER] -u=[USER]--password=[PWD] &
Re: mysqldump Alternativen
Posted: 2005-12-13 18:11
by afrika123
Ich habe es nun mit:
Code: Select all
mysqldump -hlocalhost -udeinUser -pdeinPasswort deineDB tabelle> db.sql
gelöst.
nun habe ich die unterschiedliche Tabellen schon einzeln gedumpt
nun habe ich ca 500 Tabellen die hld_xxx und 500 mit hkl_xxx heissen.
Gibt es da soetwas wie Platzhalter das ich das so machen kann:
:
Code: Select all
mysqldump -hlocalhost -udeinUser -pdeinPasswort deineDB hkl_%> db.sql
Re: mysqldump Alternativen
Posted: 2005-12-13 18:16
by snowball
Platzhalter. Mhh, keine Ahnung. Ich würde versuchen mit sowas zu scripten. Erst alle Tabellen ausgeben lassen und dann mit jeder einzelnen einen Dump machen. Aber wie genau, kann ich dir auf die schnelle auch nicht sagen. Wäre aber nett, wenn du es hier posten würdest, wenn du die Lösung gefunden hast.
Re: mysqldump Alternativen
Posted: 2005-12-14 21:41
by jhl
Alle Datenbanknamen gibt's mit
Code: Select all
for i in /var/lib/mysql/*/; do basename $i; done
Re: mysqldump Alternativen
Posted: 2005-12-14 21:43
by Roger Wilco
jhl wrote:Alle Datenbanknamen gibt's mit
Code: Select all
for i in /var/lib/mysql/*/; do basename $i; done
Oder ein Benutzer mit entsprechenden Rechten und "SHOW DATABASES;".
Re: mysqldump Alternativen
Posted: 2005-12-14 23:27
by afrika123
Es ging um die Tabellen in einer Datenbank, also ein SHOW TABLES
und dann die Tabellen wie kjd_%_olj
Re: mysqldump Alternativen
Posted: 2005-12-15 08:18
by snowball
Roger Wilco wrote:jhl wrote:Alle Datenbanknamen gibt's mit
Code: Select all
for i in /var/lib/mysql/*/; do basename $i; done
Oder ein Benutzer mit entsprechenden Rechten und "SHOW DATABASES;".
Das ist viel besser, wenn ich das mal so sagen darf. Mit der for-schleife bekommt man nämlich keine InnoDB Datenbanke raus. Die liegen alle in Dateien und nicht in den Unterordnern.
Re: mysqldump Alternativen
Posted: 2005-12-15 22:51
by bunkerjambe
Funktioniert folgendes auch?
Code: Select all
tar -czf /backup/backupdatei.tar.gz /var/lib/mysql 2>/dev/null
Er sichert dann alle Dateien in dem Verzeichnis...kann ich die dann einfach wieder zurückkopieren, MySQL starten und alles geht? Oder muss ich das mit mysqldump bzw mysqlhotcopy (etc.) machen damit es funktioniert?
Merci!
Re: mysqldump Alternativen
Posted: 2005-12-15 23:03
by Roger Wilco
BunkerJambe wrote:Funktioniert folgendes auch?
Nur wenn du den mysqld währenddessen stoppst und sich die MySQL-Versionen nicht allzusehr unterscheiden.
Re: mysqldump Alternativen
Posted: 2005-12-15 23:22
by bunkerjambe
Achso? weil sichern tut er mir die ganzen Tabellen (auch wenn ich MySQL nicht beende)!
Aber ich lass es jetzt erstmal zusätzlich über
Code: Select all
/usr/bin/mysqldump --all-databases -u [username] --password=[userpassword] > /[PATH]/[FILE].sql
laufen! Doppelt hält erstmal besser...dann such ich mir das beste raus!
Re: mysqldump Alternativen
Posted: 2005-12-16 00:50
by niemand
Ja, es läuft ohne Fehler durch. Aber lass mal gerade in dem Moment, in dem das gesichert wird, einen schreibenden Datenbankzugriff sein, dann hast du in deiner Sicherung u.U. teilweise neue und teilweise alte Daten bunt zusammengemischt -> Datensalat.
cu
Re: mysqldump Alternativen
Posted: 2005-12-16 08:18
by snowball
Es sollte funktionieren. Allerdings musst du vorher die Datenbank runterfahren und danach wieder hochfahren. Ist natürlich nicht so gut für die erreichbarkeit ;-)
EDIT:
Mist, habe nicht alles gesehen :oops: