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
Author: ram@zedat.fu-ber
Date: Sun, 10 Sep 2017 23:04
Date: Sun, 10 Sep 2017 23:04
12 lines
647 bytes
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
Author: Axel Schwenke
Date: Mon, 11 Sep 2017 10:34
Date: Mon, 11 Sep 2017 10:34
71 lines
2675 bytes
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