Autor Thema: Wie spielt man eine einzelne Tabelle aus einem Backup neu ein?  (Gelesen 555 mal)

0 Benutzer und 1 Gast betrachten dieses Thema.

Skippy

  • Mitglied
  • *
  • Beiträge: 208
    • William Fichtner Fansite
Wie spielt man eine einzelne Tabelle aus einem Backup neu ein?
« am: 02. September 2010, 14:39 Uhr »
Hallo!

Mein Datenbank-Hoster stellt seit ein paar Wochen einiges um.
Alle Datenbaken wurden auf eine aktuelle MySQL-Version umgestellt (MySQL 5) und im Zuge dessen wurden die Datenbanken aller Kunden auf neue Server transferiert.
Bei meinen Datenbanken ist das vor etwa fünf Tagen geschehen und danach war eigentlich alles okay.
In der Nacht vom 30. auf den 31. August sind bei weiteren Arbeiten an den Serven dem Hoster nun aber alle Einträge "abhanden gekommen", die in der Zeit vom 28. bis 30. August gemacht worden sind.
Bei mir sind dabei die entsprechenden Posts in den Foren verschwunden, was aber nicht ganz so tragisch war, da an diesem Wochenende nur wenig gepostet wurde und die User haben ihre Posts bereits wieder neu eingestellt.

Auf einer meiner Datenbanken, in der ein smf-Forum liegt, habe ich zusätzlich auch noch ein Voting-Script liegen.
Wie ich in phpMyAdmin gesehen habe, sind in der Tabelle von dem nun sämtliche bisher gemachten Votes verschwunden und anstatt einer Zahl von ca. 260 steht nun eine Null bei "Einträge".

Mein letztes Backup der Datenbank von vor dem Datenverlust ist vom 27. August.
Ich habe diese gezippte Datei mal entpackt und in der sql-Datei stehen alle Votes einzeln aufgelistet drin.
Wie kann ich jetzt nur diese eine Tabelle in die Datenbank importieren, ohne, dass auch die smf-Tabellen mit denen vom 27. überschrieben werden?

Ich habe den SQL-Dumper installiert und auch phpMyAdmin. Letzteres läuft momentan allerdings nicht mehr so richtig, weil das noch eine Version für MySQL 4 ist.

Hier folgt ein Link zu einer Grafik, die noch mal genauer zeigt, was ich meine.
Die Tabelle  hsrs  ist die von dem Voting-Script. Unter "Einträge" steht nun eine 0. Dort müsste eigentlich eine Zahl von etwa 260 stehen.
Nur diese eine Tabelle soll dort jetzt mit den alten Daten überschrieben werden, alle anderen, die das smf-Präfix vorne dran hat, sollen so bleiben.

http://home.arcor.de/pics10/bsp_tabellen.png

Was muss ich nun machen?
Wie sind die einzelnen Schritte, in denen ich vorgehen muss?

Danke und Grüße,
Skippy

stard

  • mitten in der
  • Entwicklung
  • ****
  • Beiträge: 3245
  • ach, das war eine frage?!
    • Das Computer Forum
Re: Wie spielt man eine einzelne Tabelle aus einem Backup neu ein?
« Antwort #1 am: 03. September 2010, 15:27 Uhr »
du hast aus meiner sicht drei möglichkeiten:

1. du legst eine neue datenbank an (entweder selbst zu hause oder du hast vielleicht eh mehrere in deinem webspacepaket), importierst dort das komplett backup und exportierst von da aus die fragliche tabelle nochmal einzeln. die kannst du dann problemlos in deine laufende datenbank einspielen.

2. du schaltest deine seite für eine halbe stunde in den wartungsmodus, macht ein volles backup der datenbank, spielst danach dein altes backup ein, macht ein einzelbackup der fraglichen tabelle, spielst danach das volle backup wieder ein und spielst dann als letztes das backup der tabelle ein das du zwischendrin gemacht hast.

3. du schaust dir an was in deinem backup steht und versuchst irgendwie von hand die tabelle samt inhalte nachzuziehen.


Skippy

  • Mitglied
  • *
  • Beiträge: 208
    • William Fichtner Fansite
Re: Wie spielt man eine einzelne Tabelle aus einem Backup neu ein?
« Antwort #2 am: 04. September 2010, 11:50 Uhr »
Danke für die Vorschläge!
Ich hatte noch einen Tipp von jemand anderem bekommen und ich denke, das ist so eine Variante gewesen, wie von dir hier unter Punkt 3 beschrieben.
Die Anleitung dazu war so:

Du nimmt die Zip-Datei vom Backup und entpackst diese.
Dann erscheint eine *.sql Datei (meistens), diese öffnen.
Suche dir den Part raus den du brauchst. Also:
CREATE hsrs IF NOT EXISTS
INSERT INTO hsrs

Nun copy and paste alle "INSERT INTO hsrs" und füge sie bei phpMyAdmin ein:
Wenn du in der Datenbank bist, findest du einen Punkt der "SQL" heißt, da musst du das ins Eingabefeld eintragen und mit OK bestätigen.

Ob nun alle Benamungen von mir richtig sind weiß ich nicht, also mit "IF NOT EXISTS" und so, aber so sieht es in etwa aus.


Auf diese Weise hat es prima geklappt und alles zusammen hat vielleicht nur drei Minuten gedauert.


stard

  • mitten in der
  • Entwicklung
  • ****
  • Beiträge: 3245
  • ach, das war eine frage?!
    • Das Computer Forum
Re: Wie spielt man eine einzelne Tabelle aus einem Backup neu ein?
« Antwort #3 am: 04. September 2010, 15:23 Uhr »
jo, das war die dritte variante :)

Wurde dein Problem gelöst, markiere das Thema bitte dementsprechend. Eine Anleitung hierzu findest du hier. Danke.