🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.datenbanken.mysql
2 messages
2 total messages Started by ram@zedat.fu-ber Sun, 10 Sep 2017 23:04
Das Data-Verzeichnis
#79833
Author: ram@zedat.fu-ber
Date: Sun, 10 Sep 2017 23:04
12 lines
647 bytes
  Nehmen wir einmal an, das data-Verzeichnis von MySQL wird
  kopiert, während der Server /nicht/ läuft. Ist die Kopie
  dann als Sicherungskopie akzeptabel (Solange man die Version
  des Servers und die Engine einer Tabelle nicht ändert)?

  Es wird ja anscheinend offiziell nicht empfohlen, das
  data-Verzeichnis zu kopieren. Der offziell empfohlene Weg
  ist anscheinend »mysqldump«. Aber ich finde das Importieren
  von Skripten bei MySQL auch ziemlich langsam. Ich kann
  mir vorstellen, daß das Importieren eines von »mysqldump«
  erstellten Skripts ziemlich lange dauert. Vielleicht hilft
  es, dabei das Echo auf die Konsole abzustellen?
Re: Das Data-Verzeichnis
#79834
Author: Axel Schwenke
Date: Mon, 11 Sep 2017 10:34
71 lines
2675 bytes
On 11.09.2017 01:04, Stefan Ram wrote:
>   Nehmen wir einmal an, das data-Verzeichnis von MySQL wird
>   kopiert, während der Server /nicht/ läuft. Ist die Kopie
>   dann als Sicherungskopie akzeptabel (Solange man die Version
>   des Servers und die Engine einer Tabelle nicht ändert)?

Im Prinzip ja. Allerdings kann man MySQL auch so konfigurieren, daß es Daten
außerhalb des datadir anlegt (indem man absolute Pfade für diverse
Dateinamen angibt). Und dann sind da ja auch noch symlinks.

Es funktioniert, wenn du *alle* folgenden Bedingungen einhältst:

1. es sind wirklich *alle* Daten im datadir
2. der Server läuft während des Kopierens nicht [1]
3. du verwendest die Kopie mit der gleichen oder einer neueren MySQL Version
und mit der gleichen oder funktionsgleichen my.cnf.

Im Fall einer neueren Version ist das das gleiche wie ein 'binary upgrade'.
Siehe Handbuch.

[1] tatsächlich ist die Forderung weniger hart. Es reicht, wenn man FLUSH
TABLES WITH READ LOCK absetzt. Sobald man dafür das OK vom Server hat, kann
man das datadir auch bei laufendem Server kopieren.

>   Es wird ja anscheinend offiziell nicht empfohlen, das
>   data-Verzeichnis zu kopieren.

Das stimmt nicht. Das Handbuch erwähnt das binäre Kopieren ausdrücklich als
schnellste Variante, um eine Kopie einer MySQL-Installation anzulegen (bspw.
um einen Replication-Slave aufzusetzen). Zudem kommt mit MySQL seit
Ewigkeiten das Perl-Skript mysqlhotcopy, das FTWRL (s.o.) verwendet. Auch
innodbhotbackup (oder xtrabackup) macht eine binäre Kopie. Und mylvmbackup
ebenfalls (im Verbindung mit einem lvm snapshot)

> Der offziell empfohlene Weg
>   ist anscheinend »mysqldump«. Aber ich finde das Importieren
>   von Skripten bei MySQL auch ziemlich langsam. Ich kann
>   mir vorstellen, daß das Importieren eines von »mysqldump«
>   erstellten Skripts ziemlich lange dauert.

Der Vorteil eines logischen Backups mit z.B. mysqldump ist, daß so ein Dump
sehr resistent gegen Veränderungen ist. Wenn irgendwo in einem Dump ein Bit
kippt, dann ist halt ein Datensatz inkorrekt. Wenn du in einem InnoDB
Tablespace das falsche Bit kippst, dann crashed dir der Server.

Allerdings ist das Einspielen eines Dumps relativ langsam. Der eine Grund
ist, daß MySQL dabei alle Indizes neu aufbauen muß. Das ist eine
prinzipielle Sache und nicht zu umgehen.

Der zweite Grund ist, daß mysqldump serialisiert. Sowohl beim Dumpen als
auch beim Laden wird nur eine CPU verwendet. Dafür gibt es Mydumper/Myloader
als Varianten mit multithreading.

Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads