MySQL 7: Niemand will Backup, alle wollen Restore.

MySQL, PostgreSQL, SQLite
User avatar
isotopp
Posts: 471
Joined: 2003-08-21 10:21
Location: Berlin

MySQL 7: Niemand will Backup, alle wollen Restore.

Post by isotopp » 2006-03-01 12:31

Last edited by isotopp on 2008-04-11 20:04, edited 1 time in total.

outofbound
Posts: 470
Joined: 2002-05-14 13:02
Location: Karlsruhe City

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by outofbound » 2006-03-01 12:59

Das gibt ein Doppelplusgut von mir. ;)

Gruss,

Out

rootmaster
Posts: 483
Joined: 2002-04-28 13:30
Location: Hannover

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by rootmaster » 2006-03-03 22:25

OutOfBound wrote:Das gibt ein Doppelplusgut von mir. ;)

Gruss,

Out
Ja, wer MySQL einsetzt, darf Freudesprünge machen..
wer nicht, der bekommt sicher Lust, das mal in die Praxis umzusetzen ;)
Dickes Lob und Dank an Kristian Köhntopp für sein kompetentes Wissen, das er hier der Community zur Verfügung stellt :)

Beste Grüsse

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by theomega » 2006-04-12 22:34

Hy,
ich danke erstmal für den tollen Post. Leider versteh ich die eigentliche Backup-Beschreibung nicht ganz bzw kann sie mir noch nicht ganz vorstellen.

Ich möchte einen kompletten MySQL Server alle 12 Stunden sichern, so dass im Schlimmsten Fall (Server raucht ab) ich maximal 12 Stunden Datenverlust habe. Das ist für meine Anwedung akzeptabel. Die Sicherung erfolgt auf ein externes (sicheres) Backup-Medium.

Im Moment Tar/Gzippe ich einfach bei laufendem Betrieb den Data-Ordner vom MySQL. Bis jetzt habe ich ausschließlich MyISAM-Datenbank eingesetzt und bei denen funktionierte das Restore der Backups gut auch wenn der Server lief. Jetzt kommen aber auf dem Server INNODB-Datenbank hinzu. Bei denen geht das nicht so einfach, meistens geht das Restore gut und irgendwann treten plötzlich komische Fehler auf. In der Doku und auch in deinem Beitrag steht ja auch drin wiso: Man darf (so) nicht bei laufendem Betrieb sichern. Das Problem ist: Ich kann nicht alle 12 Stunden den Datenbank-Server runterfahren. Das sichern dauert ein Paar Minuten, das ist inakzeptabel. Also muss schleunigst eine andere Lösung her. Auf der Suche nach einer bin ich auf diesen Post gestossen.

Ich versteh das Vorgehen des Backups nicht ganz: Du erstellst ein Vollbackup indem du alles sicherst. Das muss wohl bei ausgeschalteter Datenbank passieren. Für alle weiteren Backups sicherst du nurnoch die vorhandenen Bin-Logs? Währe also folgendes Vorgehen Möglich/Sinnvoll:
Einmal pro Woche:
Datenbank runterfahren, alle Bin-Logs löschen (???), komplettes Data-Verzeichniss sichern. Datenbank wieder hochfahren. Sicherung auf externes Gerät verschieben
Alle 12 Stunden:
Alle Bin-Logs sichern und auf externes Gerät verschieben.

Pass das so? Ist es ok das ich die Bin-Logs bei dem Vollbackup lösche? Die brauche ich ja eigentlich nichtmehr nach dem Vollbackup oder?

Wie funktioniert der Trick mit dem LV? Den nutzst du doch zur Vollsicherung, oder? Mir ist das Prinzip von LV im Prinzip bekannt, nur nicht im Detail. Gibt es eine Möglichkeit ohne LV (hab ich im Moment nicht auf dem Server).

Ich danke dir schonmal
Gruß
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11139
Joined: 2003-02-27 01:00
Location: Hamburg

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by Joe User » 2006-04-12 22:47

Setze einen MySQL-Slave (Replication) auf, den kannst zum externen Backup runterfahren, ohne dass Deine Applikationen davon etwas mitbekommen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by theomega » 2006-04-12 22:53

Hy,
heißt das einen zweiten MySQL-Server (/zweite Instanz) ? Mir stehen im Moment keine weiteren Server zur verfügung, kann ich das nebenher auf dem Dateban-Server laufen lassen oder kostet das viel Performance?

Gruß
TO

User avatar
Joe User
Project Manager
Project Manager
Posts: 11139
Joined: 2003-02-27 01:00
Location: Hamburg

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by Joe User » 2006-04-12 23:13

Du kannst den Slave auf der gleichen Kiste laufen lassen. Wenn Du alle DBs replizierst, verbraucht der Slave (fast) die gleichen Ressourcen wie der Master. Der Performanceverlust des Master liegt meistens unter 5% und ist normalerweise kaum spürbar.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by theomega » 2006-04-12 23:28

Hy,
danke für die schnelle Hilfe.
Wie sieht es mit einer Backup-Lösung ohne zweiten Server aus, wie es oben beschrieben wurde, wäre mein Vorgehen evtl möglich und wo liegen die Schwachstellen?

Danke
TO

lord_pinhead
Posts: 774
Joined: 2004-04-26 15:57

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by lord_pinhead » 2006-04-13 13:31

Naja, eigentlich fährst du einmal die Woche den Mysql Daemon runter, sicherst die Binlog, zusätzlich noch mal ein kompletten Dump und löscht die Binlogs und legst eine neue binlog mit der nächsten Numerischen Nummer an, dann ziehst du einfach alles auf deine Kiste und bruzelst es. Wenn du kein zweiten Server hast bleibt dir halt nichts anderes übrig.

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by theomega » 2006-04-13 13:37

Hy,
wiso sollte ich den Binlog bei der komplett-Sicherung mitsichern? Ich mein ich hab doch eine komplette Kopie wenn der Server unten ist. Oder geht es einfach darum eine zweite Kopie zu haben, so dass ich mit dem Backup von vor einer Woche plus den Binlogs auch wiederherstellen kann falls beim aktuellen Vollbackup was schiefgeht?

Und noch zwei Fragen: Wie lösch ich die Binlogs? Einfach die Dateien löschen und beim nächsten Starten merkt das MySQL? Und wie bewege ich MySQL dazu einen neuen Binlog anzulegen? Einfach die alten löschen. Und: Sind die Binlogs immer aktuell auf der Platte, wenn ich also die Binlogs sichere ist das ok? Oder muss ich vorher dem MySQL noch sagen das es alles rausschreiben muss.

danke
TO

theomega
Userprojekt
Userprojekt
Posts: 696
Joined: 2003-01-27 14:36

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by theomega » 2006-06-27 15:05

Habe durch nachlesen einige meiner Fragen beantworten können, doch folgendes bleibt:
1. In dem oben angegeben Voll-Backup-Script ist ein Fehler drin: Das Flushen der alten Logs ganz am ende funktioniert so nicht, weil der Mysql-Befehl den Dateinamen ohn das "./" davor haben will. Habe das mit einem Substring-Befehl gelöst.

2. Warum sichert man den (sehr kleinen) letzten Bin-Log noch mit? Die Daetenbank ist doch zu dem Zeitpunkt beendet und alle Daten auf die Platte geschrieben, somit ist der Binlog doch unütz, oder? Ich hätte einfach bei jedem Vollbackup alle Bin-Logs gelöscht, weil ich davon ausgehe das alle im Vollbackup enthalten ist. Wozu wird in dem Voll-Backup-Script die Position in dem kleinem BinLog mit? In wie fern hilft der beim Restore?

3. Bei den inkrementellen Backup: Ich kopiere einfach alle Binlogs raus die in dem Verzeichniss existieren und lösche sie nicht. Ist das ok so?

4. Wie läuft das Restore ab? Man kopiert das letzte funktionierende Vollbackup zurück und rollt alle danach erstellten BinLogs in den MySQL. Passt das so?

Gruß
TO

ryukia
Posts: 58
Joined: 2004-07-16 14:40
Location: Karlsruhe

Re: MySQL 7: Niemand will Backup, alle wollen Restore.

Post by ryukia » 2006-10-20 19:44

Hier ebenfalls eine guter Artikel (in Englisch) von Russell Dyer zu dem Thema :

http://dev.mysql.com/tech-resources/art ... overy.html

Ciao
Ryukia