Wiederherstellen einer Datenbanksicherung

 3 Kommentare zu diesem Tutorial

Die Magento Datenbank hat, wie fast alle Datenbanken, Fremdschlüsselbeziehungen um die Datenbankintegrität zu gewährleisten. Machen Sie ein Backup der Datenbank mit dem in Magento mitgelieferten Backup Assistenten (Admin > System > Werkzeuge > Backup), schreibt Magento automatisch zusätzliche Befehle in die erstellte .sql Datei, sodass beim Wiederherstellen einer Datenbanksicherung von Magento die Fremdschlüssel nicht überprüft werden. Das System geht davon aus das eine funktionierende Magento Datenbank auch beim Wiederherstellen des Backups wieder funktioniert.

Wiederherstellen einer Datenbanksicherung mit phpMyAdmin

Macht man eine Sicherung der Magento Datenbank über die Datenbank-Verwaltung, z.B. mit phpMyAdmin, werden die Fremdschlüssel überprüft und es kommt sehr wahrscheinlich solch eine Fehlermeldung:

Cannot add or update a child row: a foreign key constraint fails

Wie Sie eine MySQL Datenbank importieren und exportieren können finden Sie z.B. in den Praxistipps von Chip.de.

Durch das sukzessive Einfügen der Zeilen und Spalten werden Fremdschlüsselbeziehungen verletzt, denn die Datenbankintegrität wird beim Einfügen nicht berücksichtigt. Um ein Backup das mit phpMyAdmin erstellt worden ist trotzdem wieder einspielen zu können, einfach folgenden Code an den Anfang der .sql Datei schreiben:

SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT;
SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS;
SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION;
SET NAMES utf8;
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0;

Am Ende der .sql Datei folgenden Code einfügen:

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT;
SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS;
SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION;
SET SQL_NOTES=@OLD_SQL_NOTES;

Mit dieser modifizierten SQL Datei sollten Sie in der Lage sein ein Backup der Datenbank mit jedem Tool ex- und importieren zu können.

Autor

Sebastian

Ich interessiere mich für eCommerce-Themen, vor allem im Zusammenhang mit dem Shopsystem Magento Commerce sowie alles rund um Web-Entwicklung und den damit verbundenen Möglichkeiten.

3 Kommentare zu “Wiederherstellen einer Datenbanksicherung

  • 15. Juli 2016 um 11:13 Uhr
    Permalink

    Hallo , ich habe versucht einen DB-Dump von der Version 1.9.2.2 in die DB einer neueren 1.9.2.4 version einzuspielen, das klappt auch aber es wird nichts mehr angezeigt.

    Haben Sie einen Tipp für mich?

    Antwort
    • 23. Juli 2016 um 13:49 Uhr
      Permalink

      Hallo Jens,

      ich nehme an du meinst das die Webseite anschließend nicht mehr angezeigt wird. Das kann mehrere Gründe haben (Datenbank-Tabelle fehlt, Werte wurde überschrieben, etc) weshalb es schwer ist den Fehler ohne weitere Informationen einzugrenzen.

      Beste Grüße
      Sebastian

      Antwort
  • 16. Juli 2018 um 14:30 Uhr
    Permalink

    Bei mir wurde es auch nicht mehr angezeigt. Habe dann tatsächlich bemerkt, dass die Datenbank-Tabelle fehlte…

    Danke

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*