Warning: Call-time pass-by-reference has been deprecated in /srv/www/vhosts/shopleiter.eu/httpdocs/mediawiki/extensions/Autolink/AutoLink.php on line 94 Notice: Undefined variable: desc in /srv/www/vhosts/shopleiter.eu/httpdocs/mediawiki/extensions/Description/Description.php on line 63 Datensicherung – ShopleiterWiki
Cloud Commerce Conference in Augsburg

Datensicherung

Aus ShopleiterWiki

Wechseln zu: Navigation, Suche

1.3.3 Datensicherung oder Datenrettung

Gerade zu Beginn der Arbeit mit der neuen Shop-Software lohnt es sich, öfters als sonst üblich eine Datensicherung (Backup) der Shop-Installation vorzunehmen. Hierfür eignen sich folgende Schritte:

  • Erzeugen Sie eine MySQL-Datensicherung der Datenbank (Admin-Bereich)
  • Erstellen Sie eine Datensicherung aller Dateien Ihrer Shop-Installation

Die Shop-Software Magento nutzt als Datenbanktyp InnoDB. Bei anderen Speicher-Engines als InnoDB verarbeitet MySQL Server zwar die Fremdschlüssel-Syntax, speichert sie aber nicht. In künftigen Datenbank Versionen werden Fremdschlüssel-Beschränkungen ebenso in MyISAM-Tabellen eingebunden. Bereits seit MySQL Server 3.23.44 unterstützt InnoDB die Überprüfung von Fremdschlüssel-Beschränkungen bei CASCADE, ON DELETE und ON UPDATE. Die Fremdschlüssel (foreign key) Beschränkungen gewährleisten eine ordentliche Datenbankintegrität. Löschen Sie bspw. eine Kategorie, dann sollten in der Datenbank ebenfalls alle Unterkategorien gelöscht werden.

  • Variante 1: Verwenden des Sicherungswerkzeugs im Magento Admin-Bereich
  • Variante 2: Sicherung per Kommandozeile mit mysqldump (Cron-Job)
# Sicherung einer einzelnen Datenbank namens DBNAME
mysqldump --databases DBNAME -uDBUSER -pDBPASS –R > domainname.sql
# Sicherung aller Datenbanken eines Webservers
mysqldump -AaCceQ -uDBUSER -pDBPASS > mysql.dbs

Listing 1.21: PuTTY-Befehle für die Sicherung von Datenbanken mit mysqldump

MySQL AB] (mysqldump - Programm zur Datensicherung)

Am einfachsten erstellen Sie ein Backup Ihrer Magento Datenbank mittels „Admin › System › Werkzeuge (Tools) › Sicherungen (Backup)“. Die gepackte gzip-Datei finden Sie im Ordner /var/backups/, diese Datei beinhaltet alle SQL-Statements. Verwenden Sie andere MySQL Administrations-Tools wie phpMyAdmin oder Navicat, fehlen einige spezielle Statements, die die Fremdschlüssel betreffen. Erstellen Sie eine Sicherung mit mysqldump, dann bleiben die Fremdschlüssel ebenfalls erhalten. Beim Start einer unvollständigen SQL-Datei bekommen Sie sonst die Fehlermeldung: „Cannot add or update a child row: a foreign key constraint fails“. Um dennoch eine solche SQL-Datei einzusetzen, fügen Sie zu Beginn folgende Zeilen ein:

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

Listing 1.22: SQL-Statements am Anfang der Datensicherungsdatei

Falls Sie eine Versionsnummer nach dem Ausrufezeichen ! einfügen, dann werden die Befehle innerhalb des Kommentars nur ausgeführt, falls die MySQL-Version größer oder gleich ist als die eingefügte Versionsnummer. Am Ende der SQL-Datei fügen Sie dazu folgende Zeilen ein:

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

Listing 1.23: SQL-Statements am Ende der Datensicherungsdatei

Mit diesen Anpassungen der SQL-Datei ist ihre Wiederherstellung funktionsfähig, auch wenn Sie andere Datenbank-Adminstrations-Tools nutzen. Das gleiche gilt natürlich ebenso für die Installation der Beispiel-Datenbank.

Datensicherung einer Magento-Datenbank

Zum Erzeugen einer Datensicherung mit allen Dateien und Ordnern Ihres Online-Shops gibt es zwei Möglichkeiten. Eine kombinierte Anwendung beider Verfahren stellt eine sehr sichere Lösung dar. Denn beide Varianten haben sowohl Vorteile als auch Nachteile:

  • Variante 1: Erstellen Sie mit einem FTP-Tool eine lokale Kopie auf dem PC
    Kopieren Sie mittels eines FTP-Tools alle Dateien auf den lokalen Rechner.
    Vorteil: Sofortiger Zugriff auf lokal gespeicherte Dateien bei Anpassungen
    Nachteil: Manuelle und extrem langsame Art der Datensicherung
  • Variante 2: Erstellen Sie mittels SSH eine komprimierbare Sicherung
    Nutzen Sie PuTTY und erstellen eine gzip-Datei mit den kompletten Datenbeständen, mit allen Dateien und Ordnern. Diese Sicherungsvariante läßt sich bequem per Backup-Skript (ausführbare Datei: backup.sh) automatisiert als Cron-Job ausführen.
    Vorteil: Automatisierbare (Cron-Job) und extrem schnelle Datensicherungsart
    Nachteil: Ein schneller Zugriff auf einzelne Dateien ist etwas aufwändiger
rsync -az --delete --delete-after /srv/www/vhosts/MYDOMAIN /backup
tar czf MYDOMAIN.tar.gz /backup/MYDOMAIN

Listing 1.24: Komprimierte Sicherung aller Dateien und Ordner

Persönliche Werkzeuge