Shopware Backup manuell erstellen und einspielen
Voraussetzungen
Damit das ganze möglichst effizient durchgeführt werden kann, empfehle ich dir, dich vorher ein wenig mit SSH vertraut zu machen und einen SSH-Key einzurichten. Dann kannst Du direkt über eine Konsole auf dem Server arbeiten.
Diese Methode ist sehr viel schneller als zum Beispiel die Arbeit über FTP.
Shopware Backup manuell erstellen
Um ein Shopware Backup zu erstellen musst du sowohl deine Datenbank als auch deine Dateien sichern. Dabei gehst du am besten Schritt für Schritt vor.
Shopware Backup per SSH erstellen
Schritt 1: Datenbank sichern
Im ersten Schritt erstellst du eine Sicherung deiner Shopware-Datenbank. Prinzipiell könntest du das auch über Tools wie zum Beispiel PhpMyAdmin durchführen, die du über das Kundencenter starten kannst.
Das funktioniert aber nur, solange die Datenbank relativ klein ist. Außerdem wollen wir in diesem Beispiel eine Export-Datei erst einmal auf dem Server ablegen. Deshalb empfehle ich, den Export der Datenbank direkt auf dem Server durchzuführen. Starte dazu ein Terminal auf deinem Rechner (manchmal auch Konsole oder (Power-)Shell genannt). Wenn du dir, wie im Abschnitt “Voraussetzungen” beschrieben, einen SSH-Key eingerichtet hast, kannst du dich mit dem folgenden Befehl mit dem Server verbinden.
ssh servername
servername steht dabei für den Namen, den du in der Datei .ssh/config definiert hast. Navigiere dann in das Verzeichnis deiner Shopware-Installation:
cd html/shopware/
Jetzt benötigst du die Zugangsdaten zur Datenbank:
- den Datenbank-Server
- den Datenbank-Benutzernamen
- den Datenbank-Namen
- das Datenbank-Passwort
Falls du dir diese Daten nirgends gespeichert oder notiert hast – kein Problem, denn wir finden sie in unserer Shopware-Installation. Im Verzeichnis shopware/ gibt es eine Datei mit dem Namen .env. Lass dir den Inhalt der Datei mit folgendem Befehl anzeigen:
cat .env
Oben in dieser Datei siehst du eine Variable DATABASE_URL. Darin stehen alle Daten, die du brauchst. Das könnte zum Beispiel so aussehen:
DATABASE_URL="mysql://p123456:SuperSicheresPasswort@db123456.mydbserver.com:3306/usr_p123456_1"
Mit dem folgenden Befehl exportieren wir den Inhalt der Datenbank in eine Textdatei. Diese Textdatei soll als Beispiel db.sql heißen:
mysqldump --opt --no-tablespaces -h db123456.mydbserver.com -u p123456 -p usr_p123456_1 > db.sql
> db.sql sorgt dafür, dass die Ausgabe des mysqldump-Befehls direkt in eine Datei geschrieben wird.
Mit der Eingabetaste (Enter) lässt du diesen Befehl ausführen und wirst jetzt nach dem Passwort gefragt. Kopiere es in die Zwischenablage (STRG + c bzw. COMMAND +c) und füge es im Terminal wieder ein mit STRG + v bzw. COMMAND + v. Achtung: das Passwort wird an dieser Stelle aus Sicherheitsgründen nicht angezeigt! Drücke wieder die Eingabetaste, um den Befehl jetzt auszuführen. Wenn du an dieser Stelle jetzt keine Fehlermeldung erhältst, hast du alle Daten korrekt eingegeben. Je nach Größe der Datenbank kann es wenige Sekunden bis zu mehreren Minuten dauern, bis der Export fertiggestellt ist. Vielleicht also Zeit, sich eine Tasse Kaffee oder Tee zu holen.
Nachdem der Exportvorgang abgeschlossen ist, solltest du im aktuellen Verzeichnis jetzt die Datei db.sql sehen. Den Verzeichnisinhalt anzeigen lassen kannst du dir immer mit den Befehlen ll oder ls -al
Schritt 2: Dateien sichern
Jetzt solltest du alle Dateien sichern, inklusive der in Schritt 1 erzeugten Datei db.sql. Navigiere dazu im Terminal eine Verzeichnisebene nach oben mit dem Befehl
cd ..
Ich empfehle, das Verzeichnis der Shopware-Installation in einer Archiv-Datei zu komprimieren. Da der Server mit Linux als Betriebssystem arbeitet, verwenden wir hier das Tar-Format. Führe folgenden Befehl aus:
tar czf "$(date +%Y%m%d)shopware.tar.gz" shopware/
Damit wird eine Datei mit dem aktuellen Datum im Dateinamen erzeugt, zum Beispiel 20220729shopware.tar.gz . Der letzte Parameter gibt das Verzeichnis an, das komprimiert werden soll. In unserem Fall ist das Verzeichnis shopware/. Das Erzeugen des tar.gz-Archivs kann je nach Größe der Shopware-Installation wenige Sekunden bis einige Minuten dauern. Also vielleicht sogar Zeit für die zweite Tasse Kaffee oder Tee. Mit Hilfe dieses Archivs kannst du jetzt jederzeit den Stand deines Shops zum Zeitpunkt der Sicherung wiederherstellen. Und du kannst diese Datei natürlich auch per (S)FTP auf deinen Rechner runterladen, um sie zusätzlich auf einem weiteren System zu sichern. Um ein wenig aufzuräumen, empfehle ich, ein Verzeichnis für deine Backup-Dateien anzulegen. Erzeuge dazu ein Verzeichnis mit dem Namen backups mittels des Befehls
mkdir backups
Anschließen verschiebe das tar.gz Archiv in dieses Verzeichnis:
mv 20220729shopware.tar.gz backups/
Damit hast du eine komplette Sicherung deines Shops erstellt.
Melde dich zum Newsletter an!
Kommende Releases, neue Features und Tipps rund um dein Hosting − wir bringen dir das Wichtigste in dein Postfach. Abonniere unseren Newsletter und bleib auf dem Laufenden.
Shopware Backup wiederherstellen
Im Fall der Fälle kannst du deinen Shop aus diesem Backup wiederherstellen. Und zwar sowohl die Datenbank als auch die Dateien.
Backup per SSH wiederherstellen
tar.gz-Archiv entpacken
Verbinde dich als erstes wieder per SSH mit dem Server. Achtung: Wenn du das Archiv noch nicht in ein eigenes Verzeichnis verschoben hast, wie oben beschrieben, hole das bitte spätestens jetzt nach! Wechsle dann in das Verzeichnis, in dem du das tar.gz-Archiv abgelegt hast.
cd html/backups/
Entpacke das Archiv mit dem Befehl:
tar xzf 20220729shopware.tar.gz
Wenn du dir nun den Verzeichnisinhalt mit “ll” anzeigen lässt, siehst du neben dem Archiv jetzt auch wieder ein Verzeichnis shopware. Das ist eine vollständige Kopie der Shopware-Installation. Wechsle in dieses Verzeichnis mit dem Befehl
cd shopware/
Datenbank wieder einspielen
Jetzt importieren wir den Inhalt der Datei db.sql wieder in die Datenbank. Die Zugangsdaten findest du wie oben beschrieben in der Datei .env . Führe folgenden Befehl aus:
mysql -h db123456.mydbserver.com -u p123456 -p usr_p123456_1 < db.sql
Über “< db.sql” weisen wir den Befehl an, den Inhalt der Datei db.sql zu importieren.
Drücke die Eingabetaste, um den Befehl zu starten. Jetzt wirst du nach dem Passwort gefragt. Kopiere es in die Zwischenablage und füge es im Terminal ein. Achtung: Auch hier wird dir aus Sicherheitsgründen das Passwort nicht angezeigt! Drücke die Eingabetaste, um den Befehl auszuführen. Wenn Du keine Fehlermeldung erhältst, hast du alles korrekt eingegeben. Je nach Größe der zu importierenden Datenbank kann dieser Vorgang wieder wenige Sekunden bis einige Minuten dauern.
Dateien ersetzen
Im letzten Schritt können wir nun die Dateien der Shopware-Installation komplett mit denen aus dem Backup ersetzen. Wechsle dazu zuerst in das Verzeichnis html/ , in dem deine Shopware-Installation liegt:
cd ..
Prinzipiell könntest du jetzt das aktuelle Shopware-Verzeichnis löschen mit dem Befehl
rm -rf shopware/
Wenn dir das zu riskant ist, kannst du es im ersten Schritt auch einfach umbenennen mit dem Befehl
mv shopware shopware_defekt
Anschließend verschiebst du das Verzeichnis shopware aus dem backups/ Verzeichnis eine Verzeichnisebene nach oben mit dem Befehl
mv backups/shopware/ .
Der Punkt steht dabei für das aktuelle Verzeichnis, in dem du dich gerade befindest.
Und das war es auch schon. Jetzt musst du deinen Shop natürlich ausführlich testen, aber das System sollte jetzt wieder auf genau dem Stand sein, zu dem du das Backup-Archiv angelegt hast.
Shopware-Videotraining
Die oben eingebundenen Videos sind Teil meines Shopware-Videotrainings. Darin lernst du von null bis Shop alles, was du über Shopware wissen solltest. Mit dem Code Mittwald15 erhältst du 15 Prozent Rabatt.
Tipp!
Hoste deine Shop-Projekte auf dem Agentur-Server und profitiere nicht nur von den Wiederherstellungspunkten sondern auch von maximaler Performance. Egal, wie groß dein Projekt ist.
Kommentare
Zudem konnte man bis Shopware 5 über das Easy Staging eine wirklich gute Testplattform erstellen und eben diese erst dann live einspielen, wenn alles reibungslos funktionierte.
Was uns aber richtig ärgert, ist dass das Staging für die Shopware 6 Version einfach gestrichen wurde. Und das trotz allgemeiner Preiserhöhungen. Das ist definitiv ein Rückschritt. Vielleicht können Sie uns den Zusammenhang mal näher erläutern. Über das Ticket-System habe ich hierüber nie eine Antwort erhalten.
Nun sind wir zwangsweise auf der Suche nach einer externen Lösung.
danke für deinen Kommentar.
Wir haben hier in den FAQ zusammengestellt, wie du die Wiederherstellungspunkte nutzen kannst: https://www.mittwald.de/faq/tools-cms/sicherheit/wiederherstellungspunkte
Falls du dein Projekt nicht weiter entschlacken kannst, meld dich sehr gern via Ticket bei unseren Kolleg*innen aus dem Kundenservice. Diese sehen sich deine Wünsche und dein Projekt sehr gern an und finden bestimmt eine Lösung.
Herzliche Grüße aus dem Marketing von
Katarina