[MySQL 4.0] Tabellen gruppiert sichern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.0] Tabellen gruppiert sichern

    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

  • #2
    verstehe ich dich richtig, das du mit *.sql-Datei "SQL-Dumps" meinst?
    Interesting Read: Unsere Regeln | Strings richtig trennen/verbinden |SGA-Tool |Energieverbrauch überwachen | JOINs, das leidige Thema

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      verstehe ich dich richtig, das du mit *.sql-Datei "SQL-Dumps" meinst?
      Ja.
      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

      Kommentar


      • #4
        bin mir nicht sicher, ob sql an dieser stelle wildcards erlaubt, dann biste schonmal ein ganzes stück weiter.

        ansonsten musst du mit php alle tabellen raussuchen, diese entsprechend gruppieren und dann die backup queries erstellen und senden.
        Interesting Read: Unsere Regeln | Strings richtig trennen/verbinden |SGA-Tool |Energieverbrauch überwachen | JOINs, das leidige Thema

        Kommentar

        Lädt...
        X