MySQL Dump importieren ...

mipo

Member
Hallo zusammen,

ich sichere gerne einzelne Datenbanken (Schema) meines MySQL Server
per Shellscript in Form eines SQL Dumps. Das Shellscript wird per Cron
zu bestimmten Zeiten gestartet.

Das funktioniert mit kleineren (WEB) Datenbanken recht schnell und unkom-
pliziert. Nun habe ich das Problem, dass ich auf einem lokalen Server einige
sehr große Datenbanktabellen habe, die ich ebenfalls sichere und auf einen
anderen MySQL Server importieren muss.

Der Export der Daten ist recht schnell und zeitlich überschaubar. Ein großes
Problem habe ich beim Import der SQL Datenbank, der unter Umständen sogar
mehrere Stunden dauert. Ich vermute, dass es an dem Logging/Rollback Sys-
tem liegen könnte, da ja jeder "INSERT" "mitgeloggt" und ggf. am Schluß ein
Rollback erfolgen könnte.

Import Befehl:
mysql -hlocalhost -uxxxx -pyyyyy web1_db3 < web1_db2.20100629_1317.sql

Wie kann man diesen Vorgang (drastisch) beschleunigen? Läßt sich per SQL-
Befehl das Logging ein bzw. ausschalten?

vG Michael
 
Da kannst Du kaum was machen. Du kannst zwar ein bisschen was rausholen, wenn Du das Binlog abschaltest (so es denn läuft), aber beim Einspielen eines Dumps prüft MySQL natürlich trotzdem bei jedem Insert alle Constraints aus der Tabellendefinition und bringt die Indices auf Stand. Das dauert einfach...

Wenn beide Server dieselbe MySQL-Version fahren, wäre noch eine Option, den Quell-Server zu stoppen, die Daten- und Formatdateien zu schnappen und auf die andere Büchse rüberzuschieben. Das geht deutlich schneller, bedingt aber eine Unterbrechung des Betriebs (zumindest so lange, bis ein FS-Snapshot erstellt ist, falls Du LVM oder ZFS im Einsatz haben solltest).
 
http://dev.mysql.com/doc/refman/5.1/de/mysqlimport.html

Handelt es sich bei der engine um Innodb?
Ansonsten ist das mit den Constraints zum grössten teil gogolores.

Log deaktivieren und Weitere Optimierungsmassnahmen...:

http://dev.mysql.com/doc/refman/5.1/de/innodb-tuning.html


Zu guter letzt wäre noch zu prüfen, ob welche und in welchem Umfang indexe angelegt werden.
Diese kann man zum beginn des Imports droppen und nach dem Import wieder anlegen. unter Oracle lässt sich das auch gänzlich ab und anschalten.

Das erzeugen der Indexe bei gefüllten Tabellen geht i.d.R. schneller, als wenn dieser zum Insert aufgebaut wird.
 
Back
Top