Seite 1 von 1

mysql Backup nur TEILWEISE einspielen - gibts nix hierfuer?

Verfasst: 10.11.2007, 14:13
von Airport1
Folgender Fall: ich moechte aus einem riesigen (2 GB?) SQL Backup-File nur aus genau einer der vielen Tabellen darin nur ein einziges Feld (Spalte) auslesen und in die aktuelle DB uebertragen. Wie mache ich dies, bspw. ueber mysql CommandLine auf dem Server? oder in Mathe-Sprache:

gegeben ist:
- aktuelleDB, die gerade laeuft mit mysql..
- backup.sql (ein Tage altes Backup von aktuelleDB)
- mysql zugriff via commandline

gewuenscht ist:
aktuelleDB.bestimmteTabelle.bestimmteSpalte = backup.sql.bestimmteTabelle.bestimmteSpalte

oder ganz genau:
SET aktuelleDB.bestimmteTabelle.bestimmteSpalte = backup.sql.bestimmteTabelle.bestimmteSpalte
WHERE aktuelleDB.bestimmteTabelle.id = backup.sql.bestimmteTabelle.id

hat da jemand ne idee, moeglichst ohne erst 30 tools installieren zu muessen? das muss doch gehen via mysql commandline, oder ist dafuer (wieder mal?) nix vorgesehen ;-)

und nein, ein komplettes restore der datenbank aus dem backup ist eher schlecht ;-)

Verfasst:
von

Verfasst: 10.11.2007, 15:16
von Airport1
anscheinend gibts dazu (mal wieder) nix, ist ja fast schon wie bei php ,)
in den groups gabs auch jemand der danach gefragt hat, niemand wusste was.

also muss man voellig umstaendlich erst das nochmal sichern was man behalten will trotz backups einspielen, backup einspielen, und dann wieder das zuvor gesicherte drueber. was ein schwachsinn ,)

Verfasst: 10.11.2007, 15:30
von LinkPop
Wenn Du das öfter brauchst, bietet sich doch eine Parallel-DB an, in die Du das Backup einspielst und dann mit paar Zeilen Code (db-backup.tabelle.id.feld > db-aktuell.tabelle.id.feld) die Daten übernimmst. Sollte schneller gehen, als alles 3x von a nach b zu zotteln.

Verfasst: 10.11.2007, 15:37
von Airport1
ne, oefter nicht. aber ich versteh nicht ganz warum es nur moeglich ist ein komplettes backup zurueckzuspielen und nicht nur einen teil davon. wir leben doch immerhin - dachte ich - im 21. jahrhundert, und nicht in der steinzeit - in der sich software heutzutage teilweise scheinbar immer noch befindet. nun spiele ich entnervt 2 gb backup zurueck statt nur ein paar tausend timestamps, das kanns ja auch nich sein. wahrscheinlich haette man (wieder mal) erst sich selber ein script schreiben muessen was einem das sql file zerlegt und das rausgraebt was man braucht. das kanns aber auch nich sein. aaah, die steinzeit ruft ;)

Verfasst: 10.11.2007, 17:32
von poenix
Doch gibt es ich suche

Verfasst: 10.11.2007, 17:36
von poenix

Verfasst: 10.11.2007, 18:16
von Airport1
wenn ich alles richtig verstanden habe spielt "bigdump" leider auch nur komplette backups ein, und keine teilstuecke (einzelne tabellen) z.b. einer ganzen datenbank-sicherung. oder hab ich was uebersehen?

ergo bleibt eigentlich nur der folgende ausweg: backup nicht pro datenbank, sondern pro tabelle durchfuehren. grosser nachteil bzw. veto allerdings ist: wenn ich dann eines tages alle tabellen zurueckspielen will habe ich den n-fachen statt den 1-fachen aufwand. also auch bloed.

fatal finde ich halt, dass wenn ich eine ganze datenbank in eine sql datei sichere, es ja eigentlich kinderleicht waere (wenn man woellte), diese in ihre einzelnen tabellen zu zerlegen. mensch koennte das zwar auch, aber wer hat schon bock eine 2 gb datei zu editieren nur um alles rauszuwerfen bis auf die 1 tabelle die man bspw. gerade braucht, ganz abgesehen davon dass die meisten editoren versagen, wenn man eine 2 gb datei editieren will.

die freaks werden jetzt natuerlich kommen dass das zerlegen mit awk | grep und co ganz easy sei.. nur ist das dann wieder steinzeit. hier sollten sich ggf. die mysql entwickler mal was vernuenftiges (zukunftsorientiertes!) ueberlegen ;)

Verfasst: 10.11.2007, 19:03
von poenix
Airport1 hat geschrieben:wenn ich alles richtig verstanden habe spielt "bigdump" leider auch nur komplette backups ein, und keine teilstuecke (einzelne tabellen) z.b. einer ganzen datenbank-sicherung. oder hab ich was uebersehen?

ergo bleibt eigentlich nur der folgende ausweg: backup nicht pro datenbank, sondern pro tabelle durchfuehren. grosser nachteil bzw. veto allerdings ist: wenn ich dann eines tages alle tabellen zurueckspielen will habe ich den n-fachen statt den 1-fachen aufwand. also auch bloed.

fatal finde ich halt, dass wenn ich eine ganze datenbank in eine sql datei sichere, es ja eigentlich kinderleicht waere (wenn man woellte), diese in ihre einzelnen tabellen zu zerlegen. mensch koennte das zwar auch, aber wer hat schon bock eine 2 gb datei zu editieren nur um alles rauszuwerfen bis auf die 1 tabelle die man bspw. gerade braucht, ganz abgesehen davon dass die meisten editoren versagen, wenn man eine 2 gb datei editieren will.

die freaks werden jetzt natuerlich kommen dass das zerlegen mit awk | grep und co ganz easy sei.. nur ist das dann wieder steinzeit. hier sollten sich ggf. die mysql entwickler mal was vernuenftiges (zukunftsorientiertes!) ueberlegen ;)
https://www.mysqldumper.de/

Das ist das was du suchst ; )

ah ja du schuldest mir ein backlink für die suche ; )