Seite 1 von 1
Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 03.02.2015 23:24
von distanzcheck
Ich habe ein Problem mit Fehlenden Beiträgen. Was ist passiert. Letzte Woche Mittwoch hatte ich ein Problem und dachte dieses mit dem einspielen eines Datenbankbackups von 1 Stunde früher beheben zu können. Leider hat das Einspielen übers ACP nicht wirklich funktioniert und irgendwann abgebrochen. Nun habe ich viele Beiträge die verschwunden sind. Habe dieses Backup wo noch alles da war auf einem Test Forum eingespielt, dort sind alle alten Beiträge vorhanden. Im live Forum wurden natürlich viele neue Beiträge geschrieben, PMs und auch neue User. Deshalb möchte ich nun nicht das Backup von letzten Mittwoch einspielen, weil dann wäre ja alles weg ab dort. Nun meine Frage. Habe ja die aktuelle Datenbank mit den neuen und aktuellen Beiträgen im Live Forum und das Backup von vorher auf dem Testforum. Kann man irgendwie die verlorengegangenen Beiträge im Live Forum aus dem Test Forum wieder in die aktuelle Datenbank einfügen oder gibt es da keine Chance. Wenn es geht wie ?
Welche Tabellen müsste man wie kopieren, einfügen oder wie auch immer ? Besteht eine gute Chance das es nachher wieder funktioniert.
Und ja, nun wieß ich wie man ein Backup korrekt wieder zurück spielt.
lg Dirk
Beide Foren sind 3.0.13 PL1
Re: Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 04.02.2015 13:44
von gn#36
Spiel das Backup doch über eine andere Software wieder ein, ich nutze z.B. für Backup & Restore immer mysqldumper. Das kann eigentlich auch beliebige SQL Backups einlesen und einspielen. Die relevanten Tabellen sind (jeweils mit prefix, z.b. phpbb_) posts, posts_text, topics. Inkonsistenzen können, selbst wenn Teile des Themas da sind, dazu führen, dass diese nicht angezeigt werden. Teile der Daten werden auch in der forums tabelle gespeichert, für die Infos auf dem Index (Letzer Beitrag o.ä.).
Re: Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 04.02.2015 16:36
von distanzcheck
Ja das wiedereinspielen des Backups wäre ja kein Problem, nur dachte ich das es eine chance geb die fehlenden sachen in der aktuellen datenbank aus dem Backup zu injizieren. Geht sowas überhaupt ? Oder habe ich danach nur noch mehr kuddelmuddel?
Re: Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 04.02.2015 17:08
von gn#36
Klar geht das. Man darf nur nichts vergessen und muss am Ende die Daten synchronisieren und den Suchindex neu aufbauen, ansonsten drohen Fehler wie Links in der Forenübersicht, die auf nicht existente Themen zeigen oder auf nicht existente Beiträge, verschwundene Beiträge, obwohl die meisten Daten in der DB sind etc.
Im Grunde musst du nur die oben genannten Tabellen um die fehlenden Einträge ergänzen, anschließend alles im ACP neu synchronisieren und den Suchindex neu aufbauen (der teil dauert, würde ich erst machen, wenn die Beiträge auch wieder da sind).
Allerdings besteht in meinen Augen bei einem abgebrochenen Wiedereinspielen eines Backups die Gefahr, dass noch mehr an Daten fehlt was man nicht mitbekommen hat und dann später irgendwann Probleme bereitet.
Re: Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 04.02.2015 17:18
von distanzcheck
Das hört sich nicht so an an würde das jemand hinbekommen der soetwas noch nie gemacht hat. Gibt es da vieleicht eine gute Anleitung zu ?
Re: Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 06.02.2015 16:18
von gn#36
Ich kenne zumindest keine und würde auch nicht die Hand ins Feuer dafür legen, dass ich nicht auf Anhieb irgendwas wichtiges vergesse.
Schau dir die functions_post.php im include Verzeichnis an, da sollten alle wichtigen Dinge drin sein, die phpBB selber beim erstellen eines Posts macht. Nicht alles davon musst du auch machen, aber daraus sollte relativ eindeutig hervorgehen, welche Tabellen du ergänzen musst. Hier solltest du dann beide Datenbanken miteinander vergleichen (z.B.
select xxx_id from dbneu.tabelle
in der einen Tabelle und dann sowas ähnliches wie
INSERT into dbneu.tabelle SELECT * FROM dbalt.tabelle WHERE xxx_id NOT IN (allegefundenen ids hier rein)
. Setzt voraus, dass du auf beide DBs gleichzeitig zugreifen kannst.
Vermutlich ist auch sowas besser:
Code: Alles auswählen
INSERT into dbneu.tabelle SELECT * FROM dbalt.tabelle LEFT JOIN dbneu.tabelle on dbalt.tabelle.xxx_id = dbneu.tabelle.xxx_id WHERE dbneu.tabelle.xxx_id IS NULL
Also: Ja, kann auch jemand machen, der sowas noch nie gemacht hat, aber ist nicht gerade unaufwändig und man sollte sich zumindest mit Datenbanken auskennen und PHP Code lesen können.
Re: Datenbank Problem 3.0.13 PL1 nach Restore
Verfasst: 07.02.2015 14:04
von distanzcheck
Danke euch, ich denke ich Poste die fehlenden sachen einfach aus der alten datenbanl in Live Forum rein, und lasse mit stk die Verwaisten Beiträge löschen. Weil so gut kenne ich mich damit dann doch nicht aus.