Portal > Foren > Ankündigungen, News und Feedback > Tutorials > [Shell] Datenbank-Backup per Konsole
Thema geschlossen
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 17.03.2006, 10:24 Nach oben    #1
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.945
Standard [Shell] Datenbank-Backup per Konsole

Datenbank-Backup per Konsole:

In diesem Tutorial wird euch die Möglichkeit geboten zu erfahren, wie ihr ein Datenbank-Backup mit über die Konsole machen könnt.

Alles was wir dafür brauchen ist:
- Zugriff auf die Shell des Linux-Rechners

Der Vorteil ist, dass man das Verfahren per conjob automatisieren kann und auf eine Backup-Prozedur wie diese verzichten kann.


Code:
#!/bin/sh
# sichern
mysqldump -uUSER -pPASSWORT -hHOST --opt DATABASE > /VERZ/EICHNIS/DATEINAME.sql
echo "Datenbank wurde gesichert"

# wieder zurückspielen
mysql -uUSER -pPASSWORT -hHOST DATABASE < /VERZ/EICHNIS/DATEINAME.sql
echo "das Datenbankbackup wurde eingespielt"
wenn nun ältere Backups gelöscht werden sollen, so ist auch das im gleichen Schritt machbar:
Code:
find /VERZ/EICHNIS/ -type f -mtime +7 -name \*.sql -exec rm {} \;
Ein wenig eleganter ist es nun jedoch die SQL-Dateien gleich zu packen. In dem folgenden Beispiel wird erst - wie oben auch - die sql-Datei erstellt und in einem weiteren Bearbeitungsschritt gepackt:
Code:
#!/bin/sh
DATUM=`date '+%Y-%m-%d__%H-%M-%S'`

# Backup erstellen:
mysqldump -uUSER -pPASSWORT -hHOST --opt DATABASE > /VERZ/EICHNIS/backup.sql

# Backup packen:
gzip -9 --best /VERZ/EICHNIS/backup.sql

# gepacktes Backup umbenennen (ich echt ein verschieben)
mv /VERZ/EICHNIS/backup.sql.gz /var/backup/backup-DATABASE-${DATUM}.sql.gz

# alte Backups löschen:
find /VERZ/EICHNIS/ -type f -mtime +7 -name \*.sql.gz -exec rm {} \;

echo "Datenbank-Backup erstellt und veraltete Datenbank-Backups gelöscht."
Ein restore der Backups geschieht im Bedarfsfall dann so:
Code:
#!/bin/sh
# entpacken
gunzip /VERZ/EICHNIS/DATEINAME.sql.gz

# Datenbank-Backup einspielen:
mysql -uUSER -pPASSWORT -hHOST DATABASE < /VERZ/EICHNIS/DATEINAME.sql

echo "Datenbank-Backup wurde eingespielt"
bei nicht gepackten SQL-Dateien entfällt der Schritt des entpackens.


Es ist wohl selbstverständlich, dass
  • /VERZ/EICHNIS/
  • USER
  • PASSWORT
  • HOST
  • DATABASE
  • DATEINAME
ersetzt werden müßen, sowie das Verzeichnis die entsprechenden Rechte haben muss, damit dort geschrieben werden kann


Jetzt solltet Ihr eigentlich in der Lage sein, ein regelmäßiges Backup zu machen.

Solltet Ihr Fragen zu dem Tutorial haben, so schreibt bitte einen Beitrag im Forum mit einem Verweis auf dieses Tutorial.
Danke.

Ich hoffe, dass ich Euch hier etwas weiterhelfen konnte.
Bei Verbesserungsvorschlägen würde ich mich über eine Nachricht freuen.

Grüße Jann Hendrik



changelog und Nachtrag:
20.03.2006
Die PC-Zeitschrift c't behandelt dieses Thema in der Ausgabe 7/2006 auf Seite 215. Dabei werden die Datenbanken-Namen im Verzeichnis /var/lib/mysql ausgelesen und anschließend die Backups erstellt. Der Vorteil: Es muss nicht mehr jede db manuell eingetragen werden.
Zitat:
Zitat von dr.e.
Das klappt nur, falls die Datenbanken MyISAM als Storage-Engine benutzen, da diese so tollerant ist, dass man ihr die Daten (hier Ordner der Datenbanken) einfach wieder unterschieben kann. Sobald man auf InnoDB oder andere Transaktions-basierte Storage-Engines umsteigt, fällt man damit auf die Nase.
24.03.2006:
Ich wurde darauf aufmerksam gemacht, dass aufgrund der Tatsache, dass sich in diesem Skript sensible Daten befinden, die Rechte für dieses Skript in der Form zu minimieren sind, dass Lese-/Schreib-/Ausführungsrechte nur für den Administrator einzuräumen sind.

25.05.2007:
links an aktulle Struktur angepasst.

03.09.2007:
smily-Fehler korrigiert.

10.10.2007:
quote von dr.e. hinzugefügt

Geändert von Jann Hendrik (10.10.2007 um 14:32 Uhr)
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Alt 03.09.2007, 18:07 Nach oben    #2
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.945
Standard

eine weitere Möglichkeit - in Verbindung mit subversion - ist hier beschrieben:
http://blogs.bwerp.net/archives/2004/09/02/backups

In diesem Tutorial soll darauf aber nicht näher eingegangen werden.


// edit: leider ist der Artikel mittlerweile dort nicht mehr verfügbar.
Inhaltlich ging es in dem Artikel darum, dass regelmäßig ein unkomprimiertes sql-backup, per cronjob aufgerufen, via svn gesichert wird.
Der interessante Aspekt hierbei ist, dass durch diese Lösung Änderungen in dem Zeitraum verfolgbar sind und jederzeit zu einem früherem Zeitpunkt zurückgesprungen wird.
Damit dürfte dieser Weg zu einem der komfortabelsten gehören, wenn der Wunsch gegeben ist, frühere Zeitpunkte wiederherstellbar zu sichern.

Geändert von Jann Hendrik (12.03.2009 um 07:46 Uhr)
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Thema geschlossen

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem bei Verarbeitung von Templates (Eigene Klassen) dago PHP-Programmierung 21 31.08.2006 16:02
[PHP] Datenbank-Backup mit mysqldumper Jann Hendrik Tutorials 0 16.03.2006 08:58
Datenbank und Sicherheit sparrow Datenbanken 23 05.11.2005 17:45
[PHP] Wie übergebe ich Daten per URL? Ben Tutorials 0 05.12.2004 14:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:03 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46