[Tipp] Beiträge Wiederherstellen mit Datenbank-Backup

Tipps zur Forensoftware phpBB 3.0.x
Gesperrt
Benutzeravatar
Mahony
Site Admin
Site Admin
Beiträge: 792
Registriert: 3. Dez 2006 22:09
Hat sich bedankt: 22 Mal
Danksagung erhalten: 6 Mal

[Tipp] Beiträge Wiederherstellen mit Datenbank-Backup

Beitrag von Mahony »

Hallo
Die folgende Methode sollte es, auf möglichst einfache Weise, ermöglichen ältere Beiträge aus einem Backup wiederherzustellen.

1. den MySQLDumper installieren.
2. Den Mysqldumper so einstellen, dass bei der Wiederherstellung weder die Datenbank gelöscht, noch das Script bei einem Fehler angehalten wird. Dazu sicherstellen, dass in der Konfiguration unter Allgemein - Wiederherstellung folgendes eingestellt ist
  • Datenbank vor Wiederherstellung löschen: nein
    Fehlerbehandlung bei Wiederherstellung fortfahren und Fehler protokollieren
3. Das Backup, welches die Beiträge enthält, die wiederhergestellt werden sollen, öffnen und alle vorkommen von

Code: Alles auswählen

DROP TABLE IF EXISTS `phpbb_tabellenname`;
und alle CREATE TABLE Anweisungen herauslöschen.
Womit öffne ich die tar.gz Datei?
Entpacke die Datei (zum Beispiel mit 7-zip oder Winrar)und öffne sie mit (zum Beispiel ) Notepad++ oder TextPad.

Das
--
-- Create Table `phpbb_acl_groups`
--
sind Kommentare, die du Gefahrlos löschen kannst.

Das
CREATE TABLE `phpbb_acl_groups` (
`group_id` mediumint(8) unsigned NOT NULL default '0',
`forum_id` mediumint(8) unsigned NOT NULL default '0',
`auth_option_id` mediumint(8) unsigned NOT NULL default '0',
`auth_role_id` mediumint(8) unsigned NOT NULL default '0',
`auth_setting` tinyint(2) NOT NULL default '0',
KEY `group_id` (`group_id`),
KEY `auth_opt_id` (`auth_option_id`),
KEY `auth_role_id` (`auth_role_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
muss komplett gelöscht werden (da es nicht benötigt wird).

Das
/*!40000 ALTER TABLE `phpbb_acl_groups` DISABLE KEYS */;
INSERT INTO `phpbb_acl_groups` (`group_id`,`forum_id`,`auth_option_id`,`auth_role_id`,`auth_setting`) VALUES ('141','1','0','14','0');
kannst du drinnen lassen (sofern du an den Berechtigungen zwischenzeitlich nichts geändert hattest).

Die Insert - Befehle, sind das wichtigste (das was du benötigst, um die fehlenden Einträge wiederherzustellen).

Das (am Anfang der Befehle)
/*!40000 ALTER TABLE `phpbb_Tabellenname` DISABLE KEYS */;
und das
/*!40000 ALTER TABLE `phpbb_Tabellenname` ENABLE KEYS */;
(am Ende der Befehle) musst du drinnen lassen.



Anschließend das Backup wieder speichern und nach mysqldumper/work/backup hoch laden.
4. Das Backup im Mysqldumper auswählen und in die Datenbank einspielen.

Alle bereits bestehenden Beiträge sollten durch die Einstellungen im Mysqldumper erhalten bleiben und nur die noch nicht (oder nicht mehr) existierenden Beiträge werden eingespielt.

Anschließend (sobald der Mysqldumper seine Erfolgsmeldung ausgegeben hat) den Cache leeren und den Beitragszähler sowie die Foren synchronisieren!

P.S. Achtung: Bevor man anfängt, sollte man unbedingt ein Datenbank-Backup der aktuellen Datenbank mit dem Mysqldumper anlegen.


Grüße: Mahony
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört. Weise ist, wer erkennt, welche Hälfte richtig ist.

Bild
Gesperrt