• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

mysql-Tabellen gruppiert sichern

Olaf123

Member
Hallo !

Ich habe eine mysql-Datenbank auf einem debian-Webserver, die aus Tabellen mit folgendem Schema besteht:

tab_1_a
tab_1_b
tab_1_c
tab_2_a
tab_2_b
tab_2_c
tab_3_a
tab_3_b
tab_4_a
...

Der Name ist also immer tab_x_y.
"x" bezeichnet die nächste zusammengehörige Gruppe. Die Gruppen haben teils unterschiedliche Anzahl "y", siehe oben: tab_1_ hat a,b,c (also 3 Tabellen), tab_3_ dagegen hat nur a,b (also 2 Tabellen).

Ich möchte diese Daten nun nicht alle in einer *.sql sichern, sondern automatisch, Gruppe für Gruppe (Gruppe 1 lesen, als sql speichern, Gruppe 2 lesen, als sql speichern usw.) nach dem Schema

tab_1.sql
tab_2.sql
tab_3.sql
...

Wie kann ich das realisieren ?
(Hinweis: es sind sehr viele Tabellen/Gruppen, das ganze läuft also mehrere Stunden)

Gruß
Olaf
 

Yehudi

Guru
Ich bin mir nicht sicher was Du genau meinst, auf jedenfall wäre es in der Datenbank besser untergebracht.
Hast Du schon mal versucht das ganze mit phpMyAdmin zu machen?

Hier findest Du einiges zu dem Thema Datenbanken:
http://www.linux-club.de/faq/Datenbanken
 
OP
O

Olaf123

Member
Hallo Yehudi !
Yehudi schrieb:
Ich bin mir nicht sicher was Du genau meinst, auf jedenfall wäre es in der Datenbank besser untergebracht.
Hast Du schon mal versucht das ganze mit phpMyAdmin zu machen?

Ich habs nicht in den mysql-Bereich gesetzt, da der im opensuse-Bereich des Boards ist, und ich debian auf dem Server habe (wohl wissend, dass dies für die Frage + Antwort voraussichtlich unrelevant ist)

phpMyAdmin funktioniert nicht, die Datenbank bzw. die Anzahl an Tabellen ist wesentlich zu groß, es wird nichtmal die Liste in phpmyadmin angezeigt.

Letztendlich brauche ich ein kleines Script, dass in einer Schleife alle Tabellen sichert.
Passieren soll folgendes:

aus
tab_1_a + tab_1_b + tab_1_c
soll werden
--> tab_1.sql

aus
tab_2_a + tab_2_b + tab_2_c
soll werden
--> tab_2.sql

aus
tab_3_a + tab_3_b
soll werden
--> tab_3.sql

usw...

Natürlich könnte man auch alle Tabellen von Hand sichern, aber jede Gruppe tab_x_y hat ca. 30 einzelne Tabellen, und es gibt eine sehr, sehr große Anzahl Gruppen, da müsste ich im Oktober anfangen, um im Dezember fertig zu werden ;-)

Ich benötige also
1. einen Befehl in der Art von
mysqldump -u USERNAME -p tab_1_a > tab_1_a.sql
nur halt so, dass nicht nur tab_1_a, sondern alle tab_1_(a,b,c,...) in eine tab_1.sql gesichert werden, und

2. dies nicht nur alle a,b,c.. usw beinhaltet, sondern in einer Schleife läuft, die tab_1 dann tab_2, dann tab_3 usw. abarbeitet bzw. in eine jeweilige *.sql packt. Also letztendlich ein kleines Script mit einer Schleife die ungefähr folgendes macht, ich versuchs mal mit meinen 80er-Jahre Basic-Resten (nicht mehr viel von übrig) zu stilisieren:

1. (n1)=1
2. mysqldump -u USERNAME -p PASSWORT tab_(n1)_(n2) > tab_(n1).sql
3. (n1)=(n1)+1
4. if (n1) = NICHT_MEHR_VORHANDEN then weiter zu Zeile 6
5. zurück zur Zeile 2
6. stop

Das _könnnnnte_ ich evtl. noch hinbekommen, aber spätestens bei dem Teil für _a,b,c usw. (also oben n2), der in meinem Beispiel ganz fehlt, wüsste ich nicht mehr weiter.

Gruß
Olaf
 
Oben