Forum: PC-Programmierung MySQL Database binary files copy ohne Lock


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Timm R. (Firma: privatfrickler.de) (treinisch)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Frage: Was genau passiert, wenn ich die Datenbank Files einer MySQL 
Datenbank kopiere, ohne die Datenbank anzuhalten?

1. Das File ist mit nennenswerter Wahrscheinlichkeit defekt und kann 
nicht mehr verwendet werden
2. Ich schneide damit in Transaktionen und diese Transaktionen sind dann 
verloren?

Hintergrund:
Ich würde gern ein stündliches Backup der Files machen, dazu möchte ich 
die Datenbank natürlich nicht stoppen. Beim täglichen, das nachts läuft, 
ist das Stoppen kein Problem.

Das ich Transaktionen verlieren würde, wäre nicht so schlimm, bei einem 
stündlichen Backup verliere ich im K-Fall ja sowieso Transaktionen, da 
kommt es auf ein oder zwei mehr auch nicht an.

Vielen Dank

 Timm

von Peter II (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Da du wahrlich nicht der Erste bist, der MySQL-Backups macht: Das 
Internet ist voll von Anleitungen. Ein Weg geht über "mysqldump". Für 
Terabytes ist das etwas unpraktisch, aber wenn sich die Grösse in 
Grenzen hält funktioniert das ganz gut. Nur schauen, dass du alles 
sicherst, --opt allein ist mitunter zu wenig.

Vorteil eines Dumps gegenüber den blanken Files: Das Ergebnis ist les- 
und korrigierbar.

: Bearbeitet durch User
von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Bei InnoDB wär ich mit mysqlhotcopy etwas vorsichtig, zumindest wenn man 
die Voreinstellung eines zentralen Tablespace verwendet.

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Timm R. schrieb:
> Das ich Transaktionen verlieren würde, wäre nicht so schlimm, bei einem
> stündlichen Backup verliere ich im K-Fall ja sowieso Transaktionen,

Du kannst auch mit Binary Logs arbeiten. Darin werden die Transaktionen 
fortlaufend protokolliert. Das kann dann beispielsweise eine tägliche 
Vollsicherung bedeuten, auf dessen Restore aufbauend man dann die 
Binlogs nachzieht. Vorteil: Die Binlogs sind kleiner und brauchen kein 
Locking.

Point in Time Recovery: Wenn du mal Mist gebaut hast, kannst du bis 
genau zu dem Zeitpunkt vor dem Fehler recovern.

: Bearbeitet durch User
von Timm R. (Firma: privatfrickler.de) (treinisch)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

A. K. schrieb:
> Timm R. schrieb:
>> Das ich Transaktionen verlieren würde, wäre nicht so schlimm, bei einem
>> stündlichen Backup verliere ich im K-Fall ja sowieso Transaktionen,
>
> Nicht notwendigerweise. Du kannst auch mit Binary Logs arbeiten. Darin
> werden die Transaktionen fortlaufend protokolliert. Das kann dann
> beispielsweise eine tägliche Vollsicherung bedeuten, auf dessen Restore
> aufbauend man dann die Binlogs nachzieht. Point in Time Recovery.

so, das klingt mal sehr interessant! Kannst Du einen Text empfehlen, der 
das Thema auf einfach Niveau anreißt?

vlg
 Timm

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Timm R. schrieb:
> so, das klingt mal sehr interessant! Kannst Du einen Text empfehlen, der
> das Thema auf einfach Niveau anreißt?

Nope, sorry. Zu lange her.

von (prx) A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Für Anspruchsvolle: Ich hatte auch schon einen Cluster aus 2 
MySQL-Servern. Diese Binlog-Technik ist nämlich nicht nur für Backups 
nützlich, sondern eignet sich auch dazu, einen zweiten Server nachlaufen 
zu lassen. Der erste schiebt nach anfänglicher Synchronisierung 
permanent die Binlogs dem zweiten rein, so dass bei einem toten 
Primärserver der zweite den aktuellen Stand hat. Ohne gemeinsames 
Medium.

: Bearbeitet durch User
von Timm R. (Firma: privatfrickler.de) (treinisch)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also die Binlogs, wie blöd kann man sein? Das ist ja ein absolut 
geniales Feature! Hat sich die Frage doch gelohnt, vielen Dank!

Die müssen in meinem Fall zwingend unbedingt eingeschaltet sein.

Herzliche Grüße und vielen Dank

 Timm

von T.roll (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Vielleicht noch interessant. Die hier machen das mit Master und Slave:

http://blog.jonaspasche.com/2009/10/26/mysql-backups-aber-wie/

von c.m. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
mysql kann inzwischen "binlogs" schreiben? coole sache - ich kenne das 
bisher nur von oracles archive-logs.
definitv ein profi feature!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.