Inhaltsverzeichnis

    Datenbank-Backups von JTL-Shop erstellen

    Hinweis: Diese Seite bezieht sich auf JTL-Shop 5. Falls Sie noch JTL-Shop 4 verwenden, finden Sie die Dokumentation unter JTL-Shop 4.

    Ihre Aufgabe/Ausgangslage

    Sie möchten bestimmte Arbeiten an Ihrem JTL-Shop vornehmen, beispielsweise eine neue Version von JTL-Shop installieren. Um diese Änderungen sicher zu testen und keinen Datenverlust zu riskieren, möchten Sie gerne die Datenbank von JTL-Shop sichern.

    Allgemeine Hinweise zum Thema Backups von JTL-Shop

    Die Daten, die Ihren JTL-Shop ausmachen, setzen sich aus drei Quellen zusammen:

    • Artikel-, Bestands-, Preis- Kategorie- und Herstellerinformationen werden von JTL-Wawi aus übertragen. Diese befinden sich in der Datenbank von JTL-Wawi.
    • Kunden, Bestellungen, Newsletter und vieles mehr werden in der Datenbank von JTL-Shop gespeichert.
    • Shop-Dateien, welche von den Kern-Dateien (nicht Daten), über Installations-Konfiguration und Ihr Template bis hin zu Mediendateien und Artikelbildern reichen, werden auf dem Webspace gespeichert.

    Um also umfassend vor Datenverlust geschützt zu sein, müssen Sie Backups für alle drei Orte erstellen bzw. erstellen lassen. Je nach Aktivität empfehlen sich folgende Abstände:

    • Datenbank von JTL-Wawi: täglich, hier lesen Sie, wie Sie ein Backup der Datenbank von JTL-Wawi erstellen: Datenbank-Backup erstellen
    • Datenbank von JTL-Shop: reguläre Backups täglich, in der Regel übernimmt dies Ihr Hoster, kontaktieren Sie diesen für Details. Außerdem sollten Sie vor jeder größeren Änderung wie beispielsweise Updates auf eine neue Version gesonderte Backups vornehmen.
    • Shop-Dateien: nach jeder Änderung, beispielsweise, wenn Sie das Template anpassen oder Einstellungen ändern. Kopieren Sie hierzu entweder Ihr ganzes Template, alle Dateien die sich ändern; oder bei größeren Änderungen (z. B. einem Update, beachten Sie die Update-Anleitung) alle Dateien aus dem Root-Verzeichnis Ihres JTL-Shops vom Server an einen anderen Ort.

    Unterschied zwischen regulärem und gesondertem Backup

    Grundsätzlich wird zwischen regulären und gesonderten Backups unterschieden.

    Reguläres Backup: Dieses wird in der Regel vom Hoster automatisch in regelmäßigen Abständen (z. B. einmal jede Nacht) angelegt und eine gewisse Zeit lang aufbewahrt. Bei einem unerwarteten Datenverlust kann man es zur Wiederherstellung nutzen.

    Gesondertes Backup: In manchen Situationen empfiehlt es sich, gesonderte Backups anzulegen, zum Beispiel weil Sie kritische Änderungen durchführen werden. Das einfachste Beispiel ist ein Versions-Update.

    Bei gesonderten Backups müssen Sie einige Dinge beachten, damit es hinterher nicht zu Fehlern, Datenverlust oder auch „Datenbank-Asynchronität“ kommt.

    JTL-Shop arbeitet mit JTL-Wawi zusammen. Beide nutzen eigenständige Datenbanken (JTL-Wawi: MSSQL-Datenbank, JTL-Shop: MySQL-Datenbank), welche über den Onlineshop-Abgleich synchronisiert werden. Von einer Asynchronität spricht man, wenn trotz erfolgtem Abgleich die Daten in JTL-Wawi und JTL-Shop nicht gleich sind.

    Beispiele:

    • In JTL-Wawi wurde ein Artikelpreis geändert und trotz Abgleich ist dieser Preis nicht in JTL-Shop.
    • In JTL-Shop wurde eine Bestellung aufgegeben und obwohl diese im Backend von JTL-Shop bei der Bestellhistorie als abgeholt gekennzeichnet ist, kann man sie in JTL-Wawi nicht finden.

    Ursprung dieser Fehler können auch Cache- oder generelle Abgleich-Probleme sein. Prüfen Sie also zunächst im Backend von JTL-Shop Browsercache, Templatecache und ObjectCache unter System > Cache.

    So eine Asynchronität kann aber auch erzeugt werden, wenn ein altes Datenbank-Backup eingespielt wird.

    Beispiel:

    • Sie ändern Artikelpreise in JTL-Wawi und gleichen diese mit JTL-Shop ab. Dort werden die Preise korrekt angezeigt.
    • Sie spielen in JTL-Shop ein Backup ein, das vor dem letzten Abgleich entstanden ist
    • Ab jetzt sind die beiden Datenbanken im Bezug auf die Artikelpreise asynchron, denn in JTL-Shop befinden sich die alten Preise, während in JTL-Wawi weiterhin die neuen Preise hinterlegt sind. Ein weiterer normaler Abgleich kann dies nicht lösen, da JTL-Wawi nicht weiß, dass JTL-Shop die neueren Daten nicht mehr hat. Die betroffenen Daten müssen also in JTL-Wawi erst erneut über einen Komplett-Abgleich übertragen werden.

    Schritt 1: Vorbereitungen für das Backup

    Bevor Sie ein Backup erstellen, sollten Sie einige Vorbereitungen treffen, die es Ihnen hinterher erlauben, die geplanten Wartungsarbeiten bzw. Änderungen durchzuführen.

    1. Setzen Sie Ihren JTL-Shop im Backend unter Einstellungen > Global in den Wartungsmodus.
    2. Führen Sie ab jetzt keinen Abgleich mehr mit JTL-Wawi durch. Falls Sie den Hintergrunddienst JTL-Worker einsetzen, beenden Sie diesen und deaktivieren Sie ihn in JTL-Wawi unter Admin > JTL-Worker.
    Alternativ können Sie auch nur den Onlineshop-Abgleich im JTL-Worker deaktivieren, indem Sie die Checkbox Keinen Onlineshop-Abgleich für diesen Mandanten durchführen aktivieren und den JTL-Worker dann wieder starten.
    1. Verändern Sie ab jetzt auch keine Einstellungen im Backend mehr.

    Schritt 2: Backup der Datenbank von JTL-Shop erstellen

    Datenbank-Backups von JTL-Shop werden auch SQL-Dumps genannt. Diese beinhalten die gesamte Datenbank von JTL-Shop, inklusive aller dort gespeicherten Daten, wie beispielsweise Bestellungen, Kunden und Einstellungen zu Newsletter-Empfängern. Sie enthalten keine installations- bzw. konfigurationsspezifischen Daten (z. B. Datenbank-Zugangsdaten zur Verbindung von Shop-Dateien mit der Datenbank; Blowfishkey zur Ver- und Entschlüsselung von Kundendaten), Templates, Artikelbilder, etc. Um diese zu sichern, müssen Sie die Shop-Dateien aus dem Root-Verzeichnis auf dem Server sichern.

    Grundsätzlich sollten Sie Datenbank-Backups immer von einem Experten durchführen lassen. Idealerweise macht dies Ihr Hoster/Internet-Provider, ein speziell dafür zuständiger Serveradministrator oder ein Servicepartner von JTL. Diese wissen in der Regel auch am besten, wie sie den Backup-Prozess automatisieren können und erkennen frühzeitig, ob es Probleme geben könnte.

    Sollten Sie dennoch ein Backup selbst anlegen, hängen die Möglichkeiten hier speziell vom individuellen Hoster ab. Wir empfehlen daher, dass Sie zuerst bei Ihrem Hoster nachfragen.
    Wir erklären hier kurz die Möglichkeit über PHPMyAdmin, die fast überall verfügbar ist und anschließend die Möglichkeit über Plesk, die z.B. bei einem bei JTL gehosteten Shop möglich ist.

    Möglichkeit 1: Backup via PHPMyAdmin

    Wichtiger Hinweis: Aufgrund von Serverkonfiguration und Skriptlaufzeiten kann es bei großen Datenbanken dazu kommen, dass es via PHPMyAdmin Probleme gibt und das Backup nicht korrekt erstellt werden kann. Wenden Sie sich für das Backup in dem Fall bitte an den Hoster! Spätestens ab einer Datenbankgröße von mehr als 200MB ist bei dieser Methode mit unbrauchbaren Ergebnissen zu rechnen.
    1. Öffnen Sie PHPMyAdmin und klicken Sie im Bereich Datenbanken auf die Datenbank, für die Sie ein Backup erzeugen möchten.
    2. Wechseln Sie in die Registerkarte Exportieren.
    3. Setzen Sie in PHPMyAdmin für einen Export der JTL-Shop Datenbank folgende Einstellungen:
    • Exportmethode: Angepasst
    • Tabellen: Alle angehakt lassen, auch Struktur und Daten!
    • Komprimierung: Bitte auf „Zip-komprimiert“ oder „GZip-komprimiert“ stellen
    • Haken setzen bei der Option „DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER-Befehl hinzufügen“
    • Einstellung „Maximale Länge der erstellten Abfrage“ insbesondere bei großen Datenbanken bitte einige Nullen anfügen

    Ihre Einstellungen sehen dann folgendermaßen aus:

    1. Klicken Sie auf OK, um das DB-Backup zu erstellen. Anschließend können Sie es lokal auf Ihrer Festplatte speichern. Fahren Sie mit Schritt 3 fort.
    Wichtiger Hinweis: Prüfen Sie die gespeicherte Datei in jedem Fall. Gehen Sie nicht einfach davon aus, dass es geklappt hat. Das ist auch für reguläre Backups wichtig. Es ist im Ernstfall gleichgültig, wie viele Backups Sie anlegen, wenn diese alle defekt sind.

    Möglichkeit 2: Backup via Plesk

    Mehr Infos zu Plesk und wie Sie als Hostingkunde bei JTL darauf zugreifen, finden Sie unter E-Mail-Adressen und FTP-Zugänge für JTL-Shop-Hosting verwalten.

    1. Loggen Sie sich in Ihren Plesk-Account ein.
    2. Klicken Sie auf Datenbanken > Abbild exportieren.
    3. Im nächsten Schritt müssen Sie das Zielverzeichnis angeben. Wir empfehlen hier das Verzeichnis /httpdocs/export/backup (dieses ist via .htaccess vor direktem Zugriff geschützt; Sie können also via Browser die Sicherung nicht herunterladen, aber via FTP und Plesk-Filebrowser darauf zugreifen). Sie können hier auch wählen, ob die Datei sofort heruntergeladen werden soll.
    1. Klicken Sie auf OK, um das Backup zu erstellen und fahren Sie mit Schritt 3 fort.
    Wichtiger Hinweis: Prüfen Sie die gespeicherte Datei in jedem Fall. Gehen Sie nicht einfach davon aus, dass es geklappt hat. Das ist auch für reguläre Backups wichtig. Es ist im Ernstfall gleichgültig wie viele Backups Sie anlegen, wenn diese alle defekt sind.

    Schritt 3: Nachbereitungen

    Wichtiger Hinweis: Dies ist das Vorgehen ohne Fehlerfall. Sollte Datenverlust/Asynchronität auftreten, sind weitere Schritte notwendig.
    1. Führen Sie Ihre notwendigen Arbeiten aus (z. B. das Update, zur Anleitung Update durchführen).
    2. Prüfen Sie, ob Ihr JTL-Shop schwerwiegende Fehler aufweist. Dabei helfen Ihnen die verschiedenen integrierten Prüfmethoden unter Fehlerbehebung > Diagnose > Dateistruktur, Verzeichnisrechte bzw. Datenbankstruktur. Darüber hinaus empfehlen wir Ihnen, sich Ihren Onlineshop nach den Änderungen selbst einmal genau anzusehen und alle wichtigen Funktionen zu prüfen.
    1. Treten keine Fehler auf, dürfen Sie ab jetzt den Onlineshop-Abgleich wieder durchführen, ggf. den Hintergrunddienst JTL-Worker reaktivieren und mit Ihren normalen Arbeiten fortfahren. Wenn Fehler auftreten, lesen Sie die Anleitung Datenbank-Backup wieder einspielen.
    2. Deaktivieren Sie den Wartungsmodus unter Einstellungen > Global.