Dump über mehrere, abhängige Tabellen

Dump über mehrere, abhängige Tabellen

am 22.06.2007 11:31:08 von Michael Schalkalwies

Hallo,

ich scheitere momentan an einem vermutlich recht trivialen Problem.

Ich möchte einen Dump über eine Tabelle "Auftraege" erzeugen und dabei alle
abhängigen Tabellen (fünf weitere), die über den Index Auftragsnummer
verfügen mitdumpen.

In den Dump sollen alle Datensätze, die älter als ein vorgegebenes
Auftragsdatum sind.

Der Dump soll dann auf einen anderen Rechner abgelegt werden, der das Archiv
enthält.

Idealerweise sollen die Datensätze dann auf dem ersten System gleich
gelöscht werden, das könnte ich aber auch erst in einem zweiten Schritt
erledigen.

Hat mir jemand einen Tipp?

Danke
Michael

Re: Dump übermehrere, abhängigeTabellen

am 22.06.2007 12:01:27 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Dump über mehrere, abhängige Tabellen

am 22.06.2007 12:16:33 von Michael Schalkalwies

Andreas Kretschmer wrote:

>
>
> klingt nach table-Partitionierung. Keine Ahnung, was Deine geheime
> MySQL-Version da kann.
>

Ist die Version 5

Gruss
Michael

Re: Dump übermehrere, abhängigeTabellen

am 22.06.2007 12:27:58 von Andreas Scherbaum

Hallo,

Michael Schalkalwies wrote:
>
> Ich möchte einen Dump über eine Tabelle "Auftraege" erzeugen und dabei alle
> abhängigen Tabellen (fünf weitere), die über den Index Auftragsnummer
> verfügen mitdumpen.

Du kannst mehrere Tabellen angeben, die gedumpt werden sollen.


> In den Dump sollen alle Datensätze, die älter als ein vorgegebenes
> Auftragsdatum sind.

Ich erinnere mich düster, das man mysqldump mal einen SQL String als
Option mitgeben konnte, finde dazu aber nichts mehr.


> Idealerweise sollen die Datensätze dann auf dem ersten System gleich
> gelöscht werden, das könnte ich aber auch erst in einem zweiten Schritt
> erledigen.
>
> Hat mir jemand einen Tipp?

Schreib dir ein Script in deiner bevorzugten Programmiersprache.
Das macht die ganze Sache wesentlich einfacher.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)

Re: Dump über mehrere, abhängige Tabellen

am 22.06.2007 20:09:37 von Dominik Echterbruch

Andreas Scherbaum schrieb:
>
>> In den Dump sollen alle Datensätze, die älter als ein vorgegebenes
>> Auftragsdatum sind.
>
> Ich erinnere mich düster, das man mysqldump mal einen SQL String als
> Option mitgeben konnte, finde dazu aber nichts mehr.

Deine dütere Erinnerung täuscht dich nicht. Aus dem Handbuch [1] im
Abschnitt zu mysqldump [2]:

--where='where_condition', -w 'where_condition'

Dump only rows selected by the given WHERE condition. Quotes around the
condition are mandatory if it contains spaces or other characters that
are special to your command interpreter.

Ist zwar nicht ganz das, was du meintest, aber die einzige Möglichkeit,
die ich sehe (neben einem netten Script, das der OP aber auch für diese
Lösung schreiben müßte).

[1] http://dev.mysql.com/doc/refman/5.0/en/index.html
[2] http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

Grüße,
Dominik
--
Wo kämen wir denn hin, wenn jeder sagen würde wo kämen wir hin, aber
niemand gehen würde um zu sehen, wohin wir kämen, wenn wir gingen?
(Autor unbekannt)

Re: Dump über mehrere, abhängige Tabellen

am 22.06.2007 20:12:25 von Dominik Echterbruch

Andreas Scherbaum schrieb:
>
>> In den Dump sollen alle Datensätze, die älter als ein vorgegebenes
>> Auftragsdatum sind.
>
> Ich erinnere mich düster, das man mysqldump mal einen SQL String als
> Option mitgeben konnte, finde dazu aber nichts mehr.

Deine düstere Erinnerung täuscht dich nicht. Aus dem Handbuch [1] im
Abschnitt zu mysqldump [2]:

--where='where_condition', -w 'where_condition'

Dump only rows selected by the given WHERE condition. Quotes around the
condition are mandatory if it contains spaces or other characters that
are special to your command interpreter.

Ist zwar nicht ganz das, was du meintest, aber die einzige Möglichkeit,
die ich sehe (neben einem netten Script, das der OP aber auch für diese
Lösung schreiben müßte).

[1] http://dev.mysql.com/doc/refman/5.0/en/index.html
[2] http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html

Grüße,
Dominik
--
Wo kämen wir denn hin, wenn jeder sagen würde wo kämen wir denn hin,
aber niemand gehen würde um zu sehen, wohin wir kämen, wenn wir gingen?
(Autor unbekannt)

Re: Dump über mehrere, abhängige Tabellen

am 22.06.2007 22:00:15 von Michael Schalkalwies

Dominik Echterbruch wrote:

>
> Deine düstere Erinnerung täuscht dich nicht. Aus dem Handbuch [1] im
> Abschnitt zu mysqldump [2]:
>
> --where='where_condition', -w 'where_condition'

Das funktioniert auch, allerdings nur über Felder, die in allen Tabellen
vorhanden sind.

Das ist nicht genau das was ich suche, da die Tabelle Aufträge ein
indiziertes Datumsfeld hat, über welches ich die Tabelle gene dumpen
möchte. Die restlichen Tabellen sind dann über die Auftragsnummer
miteinander verbunden.

Ich habs mir aber jetzt als Notlösung gebastelt und dumpe die Tabellen
einzeln mit etwas "Sicherheitsbestand", so dass in der zu dumpenden Tabelle
das herausgeholt wird, was ich brauche, ich aber eine Woche weniger lösche
als dedumpt wurde, das tuts mir so und der Tipp war super.

Danke nochmals
Gruss
Michael

Re: Dump übermehrere, abhängigeTabellen

am 22.06.2007 23:13:02 von Andreas Scherbaum

Dominik Echterbruch wrote:
> Andreas Scherbaum schrieb:
> >
> >> In den Dump sollen alle Datensätze, die älter als ein vorgegebenes
> >> Auftragsdatum sind.
> >
> > Ich erinnere mich düster, das man mysqldump mal einen SQL String als
> > Option mitgeben konnte, finde dazu aber nichts mehr.
>
> Deine düstere Erinnerung täuscht dich nicht. Aus dem Handbuch [1] im
> Abschnitt zu mysqldump [2]:
>
> --where='where_condition', -w 'where_condition'

Tatsache. Nun, ich habe mysqldump --help zwei Mal hoch und runter
gescrollt, nichts passendes auf die Schnelle gefunden und dann
aufgegeben. In dem Fall habe ich die Option schlicht übersehen.


> Ist zwar nicht ganz das, was du meintest, aber die einzige Möglichkeit,
> die ich sehe (neben einem netten Script, das der OP aber auch für diese
> Lösung schreiben müßte).

Das war schon das, was ich an der Stelle in meinem Posting meinte.
Danke übrigens für das Auffinden.

Allerdings wird das dem OP nur bedingt weiterhelfen, weil er weiter unten
einscchränkende Bedingungen hat, die man wohl nur noch mit einem eigenen
Script lösen kann.


Bye

--
Andreas 'ads' Scherbaum
Failure is not an option. It comes bundled with your Microsoft product.
(Ferenc Mantfeld)