mysql - Datenbanken verschieben

Thorsten

SSF Facilitymanagement
Staff member
Hallo!
Bisher bin ich beim verschieben von Datenbanken (von einem Server auf einen anderen) folgendermaßen vorgegangen:

- Datenbank (db) auf Server A in eine Datei exportiert
- mysqldump -u user -p db >db.sql
- Neue Datenbank auf Server B erzeugt
- mysql -u user -p
- CREATE DATABASE db;
- db.sql per FTP auf Server B transferiert
- Datenbank db auf Server B importiert
- mysql -u user -p
- use db;
- source db.sql;

Dies hat den nicht zu unterschätzenden Nachteil, das es unter Umständen sehr lange dauern kann, bis das Statement source ... durchgelaufen ist. Die Datenbank ist beispielsweise um die 200 MByte (der Export). Zeit für das Importieren ca. 25 Minuten.

Gibt es da nicht eine schnellere Variante?

mfG
Thorsten
 
1.) In den Ordner per Shell wechseln in dem die MySQL-Dateien gesichert sind (z.B.: /var/lib/mysql/)
2.) Das Verzeichniss der zu kompierenden Datenbank packen als *.tar.gz
3.) An einen Ort "mv"en an dem die Datei per Web zugänglich ist.
4.) Auf dem dem Ziel Server die Datei "wget"en
5.) In /var/lib/mysql entpacken
6.) Rechte überprüfen
7.) Gucken ob es funktioniert, denn das hab ich noch nie ausprobiert ;)
 
@Thorsten:
Die Performance wird gesteigert, indem Du 'erweiterte Inserts' beim mysqldump nutzt. Dann wird nicht ein Insert pro Zeile sonder einige dutzend Zeilen mit einem Statement eingefügt.

@djrick:
Aber vorsicht, wenn man von MySQL 3.x auf MySQL 4 kopieren will oder von Windows auf Linux, etc.

huschi.
 
Hallo!
Also beim mysqldump mit der Option -e. Und das wirk sich beim mysql source ... Kommando aus?

mfG
Thorsten
 
Die Theorie dahinter ist, daß beim normalen Dump pro Datarow eine Zeile 'INSERT INTO ... VALUES ();' ins Dumpfile geschrieben werden.
Bei der extended-Version enthält der Dump ein 'INSERT INTO' gefolgt von einer vielzahl von VALUES. Dadurch wird Parsingzeit beim wieder Einspielen gespart.

Ob es sich wirklich deutlich bemerkbar macht, kann ich allerdings nicht beurteilen, da ich es nie mit einer Stopuhr getestet habe.

huschi.
 
Hallo!
Es macht sich stark bemerkbar! Statt einer wurden bei mir zwischen 5000 und 6500 Zeilen 'auf einmal' eingefügt. Danke für den Hinweis.

mfG
Thorsten
 
Back
Top