# MySQL-DB: Sicherheitskopie?



## Leroy42 (1. Sep 2007)

Hallo,

ich weiß zwar, das meine Frage eher weniger (vielleicht) mit Java zu tun hat,
dennoch denke ich, das so einige mir hier Antworten oder Links geben könnten,
die mir weiterhülfen.

Seit mittlerweile 3 Monaten verwenden wir für unsere Verkäufe eine MySQL-Datenbank
auf dem Server unseres Providers. Auch die Rechnungserstellung erfolgt
durch direkten Zugriff auf diese Datenbank. Hier mal ein Bild aus dem Programm:
(Das Programm ist vollständig von mir selbst entwickelt worden,
und so sieht es auch aus und _fühlt_ sich an  )







Der Vorteil dieser Lösung ist, das - das entsprechende Programm
vorausgesetzt - es von _überall_ möglich ist, Rechnungen zu 
erstellen oder die bisherigen Rechnungen einzusehn / zu verändern.

So langsam kommen mir jedoch Bedenken, was passieren könnte,
wenn die Datenbank unseres Providers _zerschossen_ wird oder
wir gar den Provider wechseln wollen/müssen.  Sogar Quartalsabrechnungen
für das Finanzamt wären dann nicht mehr möglich  :shock: 

Deshalb meine Frage: *Wie kann man eine Sicherungskopie einer MySQL-DB erstellen?*

Ideal wäre es, wenn die Möglichkeit bestünde, einmal pro Woche(Tag) die
relevanten Tabellen der DB in _irgendeiner_ Form zu erhalten und zu
speichern, sodass es möglich wäre, alle Daten wieder _von Null an_
in eine (leere) Datenbank einzulesen? Hierbei müssten allerdings
auch die Bezüge zu den Typen der Art: _`id` INT NOT NULL AUTO_INCREMENT_
wieder generiert werden (Ich hoffe ihr versteht, was ich meine).

Da ich selbst noch blutiger Anfänger in Sachen MySQL bin, weiß ich auch
nicht, wonach ich da googlen sollte.

*Wie macht ihr das denn so?*

Im Moment kann ich mir nur vorstellen, zwei Java-Programme zu schreiben:

Das Eine soll die ganzen vorhandenen Tabellen auslesen, in eine beliebige
Form (XML?) umwandeln und diese Daten speichern.

Das Zweite sollte dann aus dem Inhalt dieser XML-Dateien wieder eine
vollständige Datenbank erzeugen wobei aber die Bezüge zu den 
automatisch generierten IDs wieder stimmen müssen.

Abgesehen daß diese Lösung auch wieder _Selbstgestricktes_, inclusive
aller hierbei auftretenden Risiken, wäre, kann ich mir aber nicht vorstellen, 
dass für diese Art der _Sicherung_ nicht bereits fertige Tools 
oder anderweitige Konzepte existieren.  :shock: 

Deshalb nochmal meine Frage: *Wie wird das normalerweise gehandhabt?*

Mit sinnvollen Links zu dieser Problematik wäre mir auch schon sehr geholfen.

Vielen Dank im Voraus für eure Antworten!


----------



## semi (1. Sep 2007)

mySQL habe ich seit einer Ewigkeit nicht mehr verwendet, aber da gibt es doch ein Kommandozeilenprogramm
"mysqldump", mit dem man die Daten exportieren und dann mit mysql wieder importieren kann.

Export:
mysqldump -u user -p password db_name > backup.sql

Import:
mysql -u user -p password db_name < backup.sql


----------



## Jango (1. Sep 2007)

Da gibts Programme dafür - wie MySQL-Admin zum Beispiel. Damit kannst du in grafischer Benutzeroberfläche deine DB-Backups (dump's) exportieren. Tabellen auswählen -> Format auswählen -> runterladen.
Wenn du das regelmäßig machst, sind die Verluste bei einem Crash nicht so hoch (ich mach das täglich).  :wink: 
Musst dir mal ergooglen.

Edit: Ich hab dir mal das googlen abgenommen (weil ich ein lieber Mensch bin  :bae: ), und dir folgendes rausgesucht:

http://www.computerbase.de/downloads/software/systemueberwachung/mysql_gui_tools/

Habs getestet - es funktioniert.


----------



## AlArenal (1. Sep 2007)

Möglichkeit 1:
Provider suchen, der zuverlässig und nachweislich täglich Datensicherungen durchführt.

Möglichkeit 2:
Eigenen Server betreiben und täglich Datensicherung durchführen.

Möglichkeit 3:
Ein Admin-Programm oder Admin-Addon zum Programm entwickeln, dass die Daten lokal abspeichert und die remote Daten auch restoren kann. Ich habs mal für einen anderen Zweck mit einer eingebauten HSQLDB gemacht, aber es geht natürlich auch CSV, XML, ...

Möglichkeit 4:
Cron-Job auf einem internen Server, der nächtlich zur DB verbindet, diese lokal dumpt, oder gar in eine lokale DB einpflegt und anschließend sein Aktionsprotokoll an eine Mail-Adresse mailt.  So halte ich grundsätzlich meine Backupskripte aller Server im Auge.

Grundsätzlich würde ich aber von allem abraten, was für einen Lauf manuelle Eingriffe erfordert. Der Mensch und seine Gewohnheiten (inkl. Bequemlichkeit und Vergesslichkeit) ist der natürliche Feind der Datensicherung und darum sollte man diese Klippe weiträumig umschiffen.


----------



## Leroy42 (7. Sep 2007)

Danke an alle!

Ich habe heute Jango's Link verwendet und bin hoch zufrieden damit!   

Von mir aus kann unser Provider jetzt ruhig mal crashen - wir sind gewappnet!


----------

