Zum Inhalt springen
Der Guide für ein smartes Leben.
Safety first

Teil 2: Tipps & Tricks: Websites sichern

Autor: Redaktion pcmagazin • 20.11.2007 • ca. 3:45 Min

Inhalt
  1. Tipps & Tricks: Websites sichern
  2. Teil 2: Tipps & Tricks: Websites sichern

Das Sichern über phpMyAdmin ist Handarbeit und für regelmäßige Sicherungen unpraktisch. Hierfür bietet sich das automatisierte Erstellen eines Dumps an. Basis ist hier das Anlegen des Dumps per Konsole bzw. Eingabeaufforderung. Die Syntax ist sehr einfach:...

Das Sichern über phpMyAdmin ist Handarbeit und für regelmäßige Sicherungen unpraktisch. Hierfür bietet sich das automatisierte Erstellen eines Dumps an. Basis ist hier das Anlegen des Dumps per Konsole bzw. Eingabeaufforderung. Die Syntax ist sehr einfach:

Safety first
Wählen Sie eine Dump-Datei zur Rücksicherung.
© Archiv
mysqldump —user=Benutzername —password=
Passwort Datenbankname >dump.sql

Optional können Sie noch eine Liste der Tabellennamen hinter dem Datenbanknamen angeben. Und auch das Komprimieren des Dumps in einem Archiv können Sie direkt in der Anweisung erledigen:

mysqldump —user=Benutzername
.—password=Passwort Datenbankname |
.gzip >dump.sql.gz

Wenn Sie auf Nummer sicher gehen wollen, sperren Sie die Tabellen beim Erstellen des Dumps mit der Option —lock-tables. Ansonsten kann es passieren, dass gerade von Nutzern in die Datenbank geschrieben wird, während Sie die Sicherung vornehmen. Dadurch sind unter Umständen einzelne Tabellen im Dump inkonsistent. Diese Gefahr ist vor allem bei Websites mit vielen Besuchern und häufiger Nutzerinteraktion hoch. Das Sperren und Sichern sollten Sie in diesem Fall aber in Zeiten machen, in denen die Site nicht stark frequentiert ist.

Diesen Kommandozeilenaufruf können Sie auf einem Linux-basierten Webserver mit einem CronJob wiederholt ausführen. Unter Windows gibt es mit dem Systemdienst Schedule ähnliche Möglichkeiten. Die meisten Hoster bieten in ihren Kundenmenüs Eingabemasken, um das Erstellen von CronJobs zu erleichtern. Sollten Sie bei einem dedizierten Server komplett auf sich gestellt sein, helfen viele Tutorials weiter, z. B. unter:

www.selflinux.org/selflinux/html/cron.html

www.newbie-net.de/anleitung_cron.html.

Zurück auf den Server

Die Sicherung alleine reicht allerdings gerade bei Datenbanken nicht, um sich sicher zu fühlen. Sie müssen die Daten auch zurücksichern können. Am besten ist es, wenn Sie die notwendigen Schritte vorab dokumentieren. Damit Sie dabei keine bösen Überraschungen erleben, sollten Sie die Rücksicherung regelmäßig testen und auch den jeweils erstellten SQL-Dump überprüfen. Sie sollten feststellen, ob alle Tabellen enthalten sind - am besten versuchen Sie auf dem lokalen Entwicklungsrechner eine entsprechende Rücksicherung. Per phpMyAdmin können Sie eine leere Datenbank auswählen oder eine neue Datenbank erstellen. Anschließend gehen Sie auf Importieren und wählen die Datei mit dem Dump. Gepackte Dateien lassen sich im Normalfall dank automatischer Erkennung direkt importieren. Weiterhin sollten Sie den Zeichensatz korrekt angeben. Sie finden ihn in der Datenbankverwaltung der Originaldatenbank.

Safety first
© Archiv

Probleme

Meistens klappt die Rücksicherung problemlos, allerdings nur meistens. Das häufigste Problem ist die Dateigröße des Dumps bzw. die maximale Ausführzeit für PHP-Skripte. Diese Probleme entstehen vor allem beim Einsatz von phpMyAdmin.

Safety first
Der SQL-Dump wird ausgegeben.
© Archiv

Für die optimale Ausführzeit können Sie beim Importieren in phpMyAdmin einen teilweisen Import wählen. Dann startet der nächste Import erst nach einer festgelegten Anzahl an Abfragen. Beim Abbruch vorher erfahren Sie, wie viele Abfragen ausgeführt wurden. Eine Alternative ist, selbst den SQL-Dump in einem Texteditor in mehrere Teile zu unterteilen. Bei vielen Systemen, z. B. bei Typo3, gibt es auch Tabellen für Caching und Ähnliches, deren Inhalte nicht gesichert werden müssen.

Ein weiteres Problem können ältere MySQL- oder auch phpMy- Admin-Versionen sein. Hier gibt es beim Export die Möglichkeit, Kompatibilitätsangaben vorzunehmen. Beispielsweise können Sie einen MySQL 4.0-kompatiblen Dump erstellen. Aber auch SQL-Code, der für Microsoft SQL-Server oder PostgreSQL funktioniert, lässt sich automatisch generieren.

Wenn Sie den Dump per Konsole wieder einspielen möchten, vermeiden Sie zumindest die Probleme mit der Ausführungszeit:

cat dump.sql | mysql —user=
.Benutzername —password Datenbankname

Sie werden dann noch nach Ihrem Passwort gefragt und benötigen als Basis natürlich auch eine leere Datenbank.

E-Mail

Um die Dump-Datei und auch andere Dateien regelmäßig zu sichern, bietet sich der Versand per E-Mail an. Die Dateien müssen dabei als Dateianhang angefügt werden, da ansonsten Probleme mit dem Zeichensatz entstehen können. Für den Versand als E-Mail sind entsprechende Tools erforderlich.

Safety first
© Archiv

Für die Konsole bieten sich als Alternativen z. B. "mutt" oder "MetaMail" an. Mit mutt würden Sie einen Dump z. B. wie folgt verschicken:

echo "Text der Nachricht" | mutt -s
."Sicherung DB" -a dump.sql.tgz
.empfaenger@domain.de

Mit MetaMail könnte der Versand wie folgt aussehen:

metasend -b -t empfaenger@domain.de
.-s "Sicherung DB" -m application/
.octet-stream -f dump.sql.tgz

Wer keinen Zugriff auf die Kommandozeile hat, kann auch den Versand per PHP oder einer anderen Server-seitigen Technologie vornehmen. Hier ein einfaches Beispiel, das die PEAR-Klassen Mail und Mail_Mime verwendet (https://pear.php.net):

<?php
include(‘Mail.php‘);
include(‘Mail/mime.php‘);
$message = new Mail_mime();
$message->setTXTBody("Text der
.Nachricht");
$message->addAttachment
.("dump.sql.gz");
$body = $message->get();
$extraheaders = array("From" =>
."me@example.com", "Subject" =>
."Sicherung DB");
$headers = $message->headers
.($extraheaders);
$mail = Mail::factory("mail");
$mail->send("somebody@example.com",
.$headers, $body);
?>

Aus Sicherheitsgründen bietet es sich beim Versand per E-Mail natürlich an, die Daten zu verschlüsseln, z. B. kann hier per PHP-Skript direkt die Dump-Datei verschlüsselt werden oder man verwendet eine E-Mail-Verschlüsselung per GPG.

Zum Automatisieren lassen sich in allen drei Fällen natürlich wieder CronJobs verwenden, die die Konsolenanweisungen ausführen oder in regelmäßigen Abständen das PHP-Skript zum Versand aufrufen.

Nächste passende Artikel
Euro-Münze
CMS
Templates, Module, Themes Drupal - Websites aus Bausteinen
Behavioral Marketing
Immer mehr Malware-Webseiten
internet, webdesign, seo, suchmaschine, googlebot, website, cloaking
Google-Panda-Update
Google-Panda-Update Google-Panda-Update
Concrete5
Online-Redaktionssysteme Concrete5
Sicher surfen im Sandkasten