Datenbanken einzelnd Backupen

MySQL, PostgreSQL, SQLite
silent85
Posts: 117
Joined: 2006-10-22 16:02

Datenbanken einzelnd Backupen

Post by silent85 » 2011-01-27 00:40

Hallo,

auf meinem Server habe ich 12 Datenbanken die insgesamt ca 500 Mb gross sind. Nur wie Backupe ich diese sinnvoll?

Code: Select all

mysqldump --all-databases -u Benutzer -p=Passwort > /pfad/texdateiname.db

Würde mein gesuch eigentlich befriedigen, nur möchte ich gerne das die Datenbanken einzelnd gesichert werden

Klingt jetzt perfekt, doch was ist wenn sich mal eine DB ändert? Jedesmal am Script werkeln und DB´s hinzufügen möchte ich auch nicht.

Nun hab ich weiter überlegt und mir gedacht das ich die Dateien selber in /var/lib/mysql (also die frm myd und myi) per cp sichere.

Bei 500 MB würde der server gute 10 sek kopieren, also würde ich das skript grob so aufbauen:
    Mysql Stoppen
    Dateien per cp kopieren
    Mysql starten

Die 10 Sek auszeit sind kein problem da Nachts die zugriffe bei null sind, doch irgendie erscheint es mir eher wie ein schlag mit der Keule.

Ginbt es eine möglichkeit das mysqldump schaut welche DB´s existieren um diese einzelnd sichert?

Gruss
Oliver

Roger Wilco
Administrator
Administrator
Posts: 5924
Joined: 2004-05-23 12:53

Re: Datenbanken einzelnd Backupen

Post by Roger Wilco » 2011-01-27 09:46

Code: Select all

for db in $(mysql -Bse 'SHOW DATABASES'|grep -v 'information_schema')
do
  mysqldump "${db}" > "mysql-${db}.sql"
done


Wenn dein MySQL-Datadir auf einem LVM logical volume liegt, kannst du auch einfach einen Snapshot erstellen. Skripte wie mylvmbackup automtisieren diese Methode.

Außerdem solltest du dir die Artikelserie von isotopp mal durchlesen, speziell http://www.rootforum.org/forum/viewtopic.php?f=103&t=39167#p302387.