Backup einer Datenbank

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Backup einer Datenbank

Postby Torti0013 » 20. October 2004 13:46

Hallo,

ich habe hier schon gesucht aber nicht das passenden gefunden.

Ich suche eine Möglichkeit um eine einzelne Datenbank zu sichern und nicht von allen ein Gesamt-Dump zu erstellen.

Der Hintergrund ist folgender, es handelt sich um eine etwas größere Datenbank die wichtig ist. Da es in letzter Zeit immer mal wieder Probleme mit dieser gab (die anderen funktionierten ohne Probleme), möchte ich diese gesondert mehrmals am Tag sichern und im Fall der Fälle auch wieder einzeln zurück spielen.

Was gibt es hier für Möglichkeiten ?

Außer dies ist mit einen Gesamt-Dump auch möglich, wenn ja wie ?

Vielen Dank
Torti0013
 
Posts: 18
Joined: 13. July 2004 18:31
Location: Reutlingen

Postby Wiedmann » 20. October 2004 13:58

Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Torti0013 » 21. October 2004 08:24

danke, werd es mir mal durchlesen.

ich habe gesehen das es auch eine copy funktion gibt "mysqlhotcopy datenbank [/pfad/zu/neuem_verzeichnis] ", wie sieht dies aus. ist dies auch im betrieb möglich (so könnte ich die datenbank auch spiegeln), oder muß der sql-server für diese aktion gestoppt werden ?
ist dies empfehlenswert ?

danke
Torti0013
 
Posts: 18
Joined: 13. July 2004 18:31
Location: Reutlingen

Postby Bierchen » 22. October 2004 11:12

So ein ähnliches problem habe ich auch...
Mehrere tabellen sind über 4MB gross, kann man ja nur 2MB hochladen.. (kein Zugriff auf ini) gibt es eine Möglichkeit wie unter windows einfach die \data\dbname zu kopieren?!

Wenn ja, wo sind die Dateien gespeichert?!

Wichtig wäre auch plattformübergreifend, da ich die Tabellen mit wampp erstellt hatte..
Bierchen
 
Posts: 19
Joined: 16. September 2004 11:58

Postby Torti0013 » 25. October 2004 06:47

hallo,

ich habe mal mysqldump ausprobiert und funktioniert recht gut.

was mir jetzt nicht ganz klar ist (habe mal in verschiedenen anderen foren geschaut). mache kopieren die datenbank im betrieb woanders und packen diese dann. ich war bis jetzt der meinung das man eine laufenden datenbank nicht kopieren kann.
ist dies doch möglich ?
funktioniert das zurück spielen auch ohne probleme ?
warum sollte man dann mysqldump verwenden ?

vielleicht kann mir jemand meine fragen beantworten.

danke
Torti0013
 
Posts: 18
Joined: 13. July 2004 18:31
Location: Reutlingen

Postby Jan H. Krüger » 25. October 2004 14:51

Was genau meinst du mit "laufender Datenbank" ? Meinst du wenn MySQL noch läuft? Naja, ohne laufenden MySQL-Dienst lassen sich schwer mit mysqldump die Daten sichern.

Oder hast du mit kopieren gemeint die *.MYD und so zu kopieren? Das dürfte denke ich korrekterweise nicht gehen da diese Dateien ja in Benutzung sind.

Wenn du eine Datenbank sichern willst kannst du, während des Betriebes, entweder
Code: Select all
/opt/lampp/bin/mysqldumo --opt -u[username] -p[passwort] datenbankname | gzip > /home/[username]/datenbankname.sql.gz


schreiben und schwupps werden deine Daten gesichert und liegen gleich gepackt in dem Verzeichnis deiner Wahl.

Unter Windows
Code: Select all
mysqldump --opt -uroot insulae > insulae.sql

Ob unter Windows ein automatisches Packen möglich ist kann ich nicht sagen, habe es dort auch noch nie ausprobiert.

Das Einspielen funktioniert auch problemlos.

Einfach
Code: Select all
/opt/lampp/bin/mysql datenbankname < filename.sql
eingeben und schwupps sind deine Daten wieder in der Datenbank. Da bei der Erzeugung des Dumps auch Lock und Unlock-Befehle mit in das File geschrieben werden sollte es beim Einspielen eigentlich auch keine Probleme geben.


Also, du könntest durchaus die *.MYD und so per Copy & Paste sichern, das jedoch nicht während des Betriebes oder gar während darauf zugegriffen wird. Mittels mysqldump ist jenes allerdings möglich.

(Mal abgesehen davon das es bei großen DBs auch etwas dauert die komplett wieder einzulesen und die Benutzer so oder so nicht auf Daten zugreiffen können wenn diese noch nicht, in welcher Art und Weise auch immer, wieder zurückgespielt wurden.)
Jan H. Krüger
 
Posts: 152
Joined: 24. October 2004 19:42

Postby Torti0013 » 25. October 2004 19:22

hab mal selber versucht was zu basteln (so lernt man am besten):

Code: Select all
#! /bin/sh
NAME1=`date +%d%m%Y`
NAME2=`date +%Hh%Mm`
ZIEL=/sicherung/

mysqldump --opt usr_web2_1 -pPASSWORT  > ${ZIEL}/usr_web2_1_${NAME1}_${NAME2}.sql
tar cvpzPf ${ZIEL}usr_web2_1_${NAME1}_${NAME2}.tgz ${ZIEL}*sql
rm ${ZIEL}*sql


was haltet ihr von dieser lösung ?

vielleicht kann man noch was verbessern ?

ist es eigentlich möglich aus einem kompletten dump (alle datenbanken) auch nur eine datenbak einzuspielen ? denn es muß ja nicht immer sein das alle einen schaden haben.

danke mal
Torti0013
 
Posts: 18
Joined: 13. July 2004 18:31
Location: Reutlingen


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 9 guests