Backup Restore MySQL

Grundsätzlich gibt es verschiedene Möglichkeiten eine SQL Datenbank zu sichern.
Auf einem LAMP ist meist zur manuellen Sicherung / Backup der MySQL DB PhpMyAdmin installiert. Die Sicherung / Backup und die Wiederherstellung / Restore erfolgt unter PhpMyAdmin sehr einfach.

Vorgehen zur Sicherung der MySQL-Datenbank:

Anwahl von PhpMyadmin unter http://IhreDomainOderIP/phpmyadmin (unter Debian; kann etwas je nach Distribution in der Groß- und Kleinschreibung verschieden sein)
Benutzername und Passwort eingeben
Auswahl der MySQL-Datenbank in linken Dropdownmenü
Im rechten Frame den Reiter EXPORTIEREN wählen
Unter den Tabellen ALE AUSWÄHLEN anklicken
Das Häkchen bei SENDEN setzen
Einen Namen dem Datenbankbackup geben
Eine Art der Kompression wählen (außer Ihre Datenbank ist recht klein, dann können Sie dies auslassen)
Und mit OK bestätigen
Resultat:
Ein Download erscheint und Ihre Datenbankbackup wird herunter geladen.

Vorgehen zum Restore der MySQL-Datenbank:

Anwahl von PhpMyadmin unter http://IhreDomainOderIP/phpmyadmin (unter Debian; kann etwas je nach Distribution in der Groß- und Kleinschreibung verschieden sein)
Benutzername und Passwort eingeben
Auswahl der MySQL-Datenbank in linken Dropdownmenu
Im rechten Frame den Reiter SQL wählen
DURCHSUCHEN wählen und DB-Backup lokal auswählen
Bei ZEICHENCODIERUNG DER DATEI LATIN1 oder UTF8 wählen
Und mit OK bestätigen

Probleme bei Mysql Backup oder Restore?
Datenbank ist zu groß oder der Vorgang dauert zu lange?

Unter Debian checken und ggf. ändern :
etc/php4/apache2/php.ini
memory_limit
upload_max_filesize

Mysql Backup & Restore auf der Shell / Konsole ( sog. sqldump oder mysqldump )

Sicherung / Backup
mysqldump –opt -Q -u dbusername -p databasename > /path/to/backupname.sql

Wiederherstellung / Restore
mysql -u dbusername -p databasename < /path/to/backupname.sql

Mysql Passwort setzen
/usr/bin/mysqladmin -u root password ‘geheim’

Skript zur automatisierten Erstellung eines mysqldump

#!/bin/sh
#Aktuelles Datum für Dateinamen setzen
DATUM=`/bin/date ‘+%Y-%m-%d’`
# Backup Database:
mysqldump –opt -Q -u DATENBANKBENUTZER -B DATENBANK –password=PASSWORT
>/PFAD/ZUM/BACKUP/DB_DATENBANK_vom_$DATUM.sql
# Datenbanken: #ggf. mehrere Male wiederholden für jede DB
mysqldump –opt -Q -u root -B eX_Testumgebung –password=qwertz
> /mnt/hdc/backup_mysql_datenbanken/db_eX_Testumgebung_vom_$DATUM.sql
## Restore: # hier nur aufgeführt zwecks Vollständigkeit
# evt. erstellen der DBs
# mysql -u<BENUTZER> -p<PASSWORT>
# mysql -p mysql>CREATE DATABASE <Datenbank>;
# exit;
# Einspielen:
# mysql -u dbusername -p databasename < /path/to/backupname.sql
## Beachten: bei System- oder Versionswechsel kommt es oft zu Problemen mit Umlauten.

MySQL-Dumper

Das Problem …
PHP-Scripte werden nach einer bestimmten Laufzeit abgebrochen (i.d.R. nach 30 Sekunden), und somit funktioniert ein Backup manuell nur bis zu einer bestimmten Größe. Braucht das Script länger als die 30 Sekunden, so wird es vom Server einfach abgebrochen und das Backup ist unvollständig. Gleiches gilt für das Wiedereinspielen eines Backups.
MySQLDumper umgeht den Timeout-Error mit Hilfe eines kleinen Tricks

Einige der vielen Funktionen von MYSQLDumper

einfache Sicherung und Wiederherstellung von MySQL-Datenbanken
MySQLDumper stellt Backups von Fremdprogrammen dank integriertem Parser wieder her
MySQLDumper beherrscht Multipart-Backup. D.h. bei großen Datenbanken kann das Backup automatisch auf mehrere Dateien verteilt werden (die gewünschte maximale Größe der Teildateien einstellbar!). Bei der Wiederherstellung sucht MySQLDumper automatisch die korrekte erste Teildatei, auch wenn versehentlich eine anderere gewählt wurde!!!
SQL-Browser: Du hast Zugriff auf Deine Tabellen. Du kannst Tabellen löschen, Datensätze editieren oder hinzufügen, SQL-Befehle direkt verarbeiten und auch speichern. Vergleichbar mit PhpMyAdmin bzw. somit der Ersatz.
Datenbankübersicht: Prozesse (mit einstellbarer Aktualisierung, Möglichkeit zum Beenden von Prozessen), Variablen, usw.
Verwaltung der Backup-Dateien
automatisches Löschen veralteter Backups nach selbst definierten Regeln (nach Alter der Datei oder nach Anzahl)
über ein mitgeliefertes Perl-Script lassen sich in Verbindung mit einem eingerichteten Cronjob Backupvorgänge automatisieren

Installation MySQLDumper

Skript herunterladen:
wget http://www.mysqldumper.de/board/download.php?id=399

Skript entpacken in ordner unter /var/www/dumper/ und config anpassen:
weg; user; passwort und auf Datei 777 setzen

Browser install aufrufen:
http://host/dumper/install.php

Erster Start: Konfiguration ftp: aktiviert; ip,user,pass,ordern (testen)
cronskript: endung=cgi pfad=/usr/lib/cgi-bin/ (speziel Debian)
(später müssen sripte hierhin verschoben werden); Backup per ftp senden speichern!

crondump editiern von .pl auf .cgi und pfad zum config-skript angeben
crondump etc. verschieben nach /usr/lib/cgi-bin/

touch /etc/cron.hourly/mysqlBackup
mysqlBackup editiern und Skriptinhalt

#! /bin/sh |
perl /usr/lib/cgi-bin/crondump.cgi config=mysqldumper.conf

Weitere relevante Beiträge:

  1. Debian Linux Backup mittels Paketlisten Unter Debian ist es möglich das System wirklich zu sichern und nach einer Neuinstallation alles wieder...
Kommentare

Kommentar hinterlassen

Suchbegriffe
mysql backup restore (47) mysql backup (37) mysqldump restore (14) mysql dump restore (13) mysql restore backup (6)