MySQLDumper-Board Forum Index Follow me on Twitter

Portal  •   Forum  •  Downloads  •  Profile  •  Search   •  Register  •  Log in to check your private messages  •  Log in  •  


 Einspielen von Dumps dauert zu lange

Post new topicReply to topic
Author Message
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-09, 15:50    Einspielen von Dumps dauert zu lange Reply with quoteBack to top

Hallo,

im vorab: ich find MySqlDumper toll, deshalb denke ich, dass das Problem an meinen lokalen Einstellungen liegt.

Ich habe eine neue Festplatte (alte kaputt Evil or Very Mad ), auf der ich unter Windows 7/Apache 2.2 neu MySQL 5.5 installiert habe.
Von der alten Festplatte habe ich ein Backup von allen DBs gemacht - mit MySqlDumper 1.24.4.

Auf der neuen Festplatte habe ich auch MySqlDumper 1.24.4 installiert. Alles problemlos.
Ich kann die Dumps auch einspielen, sie brauchen aber ewig lang.
Multipart is aktiviert und die Dump-Teile haben gz-komprimiert je ca. 2 MB.

Zusätzliches Problem:
Meine produktive Umgebung liegt auf einem Unix-Server. Dort werden die Dumps mit MySqlDumper 1.24 erstellt. Diese Dumps habe ich versucht, lokal mit phpMyAdmin zu importieren. Da brauche ich ca. 3 Stunden für einen 2 MB gz-Teil. Das kann nicht sein.
Auf meiner alten Festplatte ging es viel schneller.

Fragen:
1. Ist in meiner MySql-Installation etwas falsch eingestellt?
2. Kann ich im MySqlDumper etwas einstellen, außer Konfiguration->Allgemein Speichergrenze 120795955 (automatisch ermittelt) und 30.000 bis 500.000 bei der Geschwindigkeitskontrolle?

Vielen Dank im voraus
Katha

OfflineView user's profileSend private message    
Anzeigen











Posted:    Anzeigen Back to top


    
DSB
Developer
Developer




Age: 41
Joined: 30 Apr 2004
Posts: 16067
Location: Reichenberg bei Würzburg


germany.gif

PostPosted: 2011-10-09, 18:08    Re: Einspielen von Dumps dauert zu lange Reply with quoteBack to top

« Katha007 » wrote:
Auf der neuen Festplatte habe ich auch MySqlDumper 1.24.4 installiert. Alles problemlos.
Ich kann die Dumps auch einspielen, sie brauchen aber ewig lang.
...
Da brauche ich ca. 3 Stunden für einen 2 MB gz-Teil. Das kann nicht sein.

Das ist auch absolut ungewöhnlich. 2MB sollten in kürzester Zeit wieder eingespielt sein (unter einer Minute). Als Problemquelle kommt aber wohl nur Dein lokales Setup und Deine lokale Hardware in Frage, welche wir nicht beurteilen können. Deshalb können wir hier leider nicht unterstützend helfen.
Du scheinst ein ganz anderes lokales Problem zu haben, welches gar nichts mit MySQLDumper zu tun hat.

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-09, 18:23    (No subject) Reply with quoteBack to top

Tja, ich glaube auch, dass es nicht am MySqlDumper liegt (dafür ist die Software einfach zu gut ;-) ).
Es war halt meine Hoffnung, dass hier jemand das gleiche Problem schon mal hatte und mir etwas zu den grundsätzlichen Einstellungen sagen kann.

Was kann man sonst noch wo einstellen, damit das Einspielen von einem Dump schneller geht?
Wenn ich die Dump-Teile entkomprimier und den SQL-Code aus dem Dump in die SQL-Eingabe von phpMyAdmin reinkopier, geht es um ein vielfaches schneller. Warum?

Schöne Grüße aus Bayern (Nürnberg) nach Bayern (Würzburg)
Übrigens: ich bin in Reichenberg geboren. Mein Reichenberg liegt aber in Tschechien, auf Tschechisch Liberec geannt. ;-)

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 41
Joined: 30 Apr 2004
Posts: 16067
Location: Reichenberg bei Würzburg


germany.gif

PostPosted: 2011-10-09, 18:39    (No subject) Reply with quoteBack to top

Das Problem scheinen bei Dir die Zugriffe auf die Datei zu sein.
Warum diese so schrecklich langsam sind, können wir - wie gesagt - aus der Ferne nicht beruteilen.

Gruß aus Reichenberg - dem aus dem Frankenland. Wink

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-10, 23:49    (No subject) Reply with quoteBack to top

Nach stundenlanger Recherche weiß ich jetzt die Ursache:
Bei den massenhaften Inserts in die InnoDB muss ich auf dem MySQL-Server das Autocommit ausschalten.
Wenn ich die Inserts manuell über PHPMyAdmin schick und ihnen "SET AUTOCOMMIT = 0" voranstelle, werden die Daten superschnell eingefügt.

Ich habe im MySqlDumpert unter Konfiguration->"Command before Dump" diese Zeile eingefügt, es hilft aber nicht weiter.
Im Dump selbst steht zwar in der ersten Zeile (die ja auskommentiert ist) folgendes drin:


-- Status:165:974165:MP_1:dbxxxxxxxx:perl:1.24.4::5.0.92-1~ui40+1:11:SET AUTOCOMMIT=0;:COMMIT;:utf8:EXTINFO

Im SQL-Code selbst sind die Befehle jedoch nicht enthalten (wie z.B. SET FOREIGN_KEY_CHECKS=0Wink.
Dementsprechend langsam ist das Wiedereinspielen des Backups.

Was kann ich tun?

Gruß auch aus dem Frankenland ;-)

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 41
Joined: 30 Apr 2004
Posts: 16067
Location: Reichenberg bei Würzburg


germany.gif

PostPosted: 2011-10-11, 03:43    (No subject) Reply with quoteBack to top

Warum läuft Dein MySQL-Server mit AUTOCOMMIT=1?
_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Jens_K
Moderator
Moderator




Age: 37
Joined: 04 Sep 2007
Posts: 1709
Location: Nähe Bielefeld


germany.gif

PostPosted: 2011-10-11, 08:53    (No subject) Reply with quoteBack to top

« DSB » wrote:
Warum läuft Dein MySQL-Server mit AUTOCOMMIT=1?


http://dev.mysql.com/doc/refman/5.1/de/innodb-and-autocommit.html
Quote:
In InnoDB findet jegliche Benutzeraktivität in einer Transaktion statt. Wenn der Autocommit-Modus eingeschaltet ist, bildet jede SQL-Anweisung eine eigene Transaktion. Standardmäßig ist dieser Modus immer aktiv, wenn MySQL hochfährt.

_________________
It's like math-camp all over again ... not ... that i've ever been to math-camp!
mein Blog

OfflineView user's profileSend private messageVisit poster's website    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-11, 10:28    (No subject) Reply with quoteBack to top

Leider kann man AUTOCOMMIT nicht in der conf ausschalten.
Ich habe es in der ini probiert mit:

init_connect='SET AUTOCOMMIT=0'
(habe ich irgendwo im Internet gefunden)

Es hilft aber nicht.

OfflineView user's profileSend private message    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-11, 12:05    (No subject) Reply with quoteBack to top

Hm, hab eine Lösung gefunden: den Code von MySqlDumper anpassen.
in mysqldumper/inc/mysql.php als Zeile 275 (Version 1.24.4) folgenden Code einfügen:

mysql_query('SET AUTOCOMMIT = 0', $config['dbconnection']);

Jetzt flutscht die Einspielung des Backups. Smile

Ist zwar keine koscher Lösung, aber ich kann damit jetzt leben.

OfflineView user's profileSend private message    
Harry72
Developer
Developer




Age: 40
Joined: 27 Jul 2011
Posts: 51


germany.gif

PostPosted: 2011-10-11, 12:08    (No subject) Reply with quoteBack to top

Hi,

du kannst auch in der my.cnf unter [mysqld] die Zeile

init_connect='set autocommit=0'


hinzufügen.

Probier's mal aus. Müsste auch klappen.

_________________
VG
Harry

Ich würde so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht. Smile

OfflineView user's profileSend private messageVisit poster's website    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-11, 12:18    (No subject) Reply with quoteBack to top

Wie ich oben geschrieben habe, init_connect='set autocommit=0' funktioniert nicht.

Eine Erklärung dafür sehe ich hier: http://dev.mysql.com/doc/refman/5.1/de/server-system-variables.html.
Quote:

Beachten Sie, dass der Inhalt von init_connect nicht für Benutzer ausgeführt wird, die die Berechtigung SUPER haben. Zweck dieser Maßnahme ist es zu verhindern, dass ein fehlerhafter Wert für init_connect eine Verbindung zum System für alle Benutzer unmöglich macht.

OfflineView user's profileSend private message    
Harry72
Developer
Developer




Age: 40
Joined: 27 Jul 2011
Posts: 51


germany.gif

PostPosted: 2011-10-11, 12:31    (No subject) Reply with quoteBack to top

Ok. Hauptsache es läuft jetzt.
_________________
VG
Harry

Ich würde so gern die Welt verändern, aber Gott gibt mir den Quellcode nicht. Smile

OfflineView user's profileSend private messageVisit poster's website    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-11, 12:33    (No subject) Reply with quoteBack to top

Aber danke für deinen Vorschlag. Smile
Man weiß nie, was greifen könnte.

OfflineView user's profileSend private message    
DSB
Developer
Developer




Age: 41
Joined: 30 Apr 2004
Posts: 16067
Location: Reichenberg bei Würzburg


germany.gif

PostPosted: 2011-10-11, 19:27    (No subject) Reply with quoteBack to top

Und um das auch für die Zukunft zufriedenstellend abzuschließen:
In der nächsten Version werden wir vorsehen konfigurierbare Queries (also auch das SET AUTOCOMMIT=0) nach jedem Selbstaufruf neu senden zu können.

Momentan ist das Problem, dass der Query zwar beim ersten Seitenaufruf getätigt wird, aber nach dem ersten Javascript-Selbstaufruf wird die alte DB-Verbindung geschlossen und anschließend eine neue geöffnet, wo dieser Query nicht erneut gesendet wird. Damit greift dann wieder die Standardeinstellung.

_________________
Gruß / Greetings, DSB

Teigwaren heißen Teigwaren, weil sie Teig waren.
Diejenigen, die lautstark darüber diskutieren, warum es nicht geht, mögen bitte jene nicht stören, die es gerade tun.

OfflineView user's profileSend private messageSend e-mailVisit poster's website    
Katha007
knows MySQLDumper
knows MySQLDumper





Joined: 09 Oct 2011
Posts: 8


blank.gif

PostPosted: 2011-10-12, 13:42    (No subject) Reply with quoteBack to top

Ja, das ist eine gute Idee. Es sollte aber auch vorgesehen werden, konfigurierbare Queries kurz vorm Ende des jeweiligen Aufrufs senden zu können.

Meine Lösung (mit der extra Code-Zeile in MySqlDumper) funktioniert nicht. Traurig
Die Dumps werden zwar schnell durchlaufen, aber es fehlt der abschließende COMMIT bevor sich die Seite neu aufruft. D.h. die Inserts einer Tabelle, die VOR dem Wiederaufruf der Seite durchgelaufen wurden, werden in die DB nicht gespeichert.

Ich habe für mich eine funktionierende Lösung gefunden, indem ich den Code von PhpMyAdmin angepasst habe (Anfang und am Ende der Datei import.php die jeweiligen DB-queries) und importiere den Dump dateiweise über PhpMyAdmin.

Aber es wäre toll, wenn das Einspielen komplett über MySqlDumper funktionieren würde. Dann wäre das Programm mehr als perfekt. up

Viele Grüße
Katha

OfflineView user's profileSend private message    
Display posts from previous:      
Post new topicReply to topic


 Jump to:   


Show permissions
Similar topics
Topic Author Forum Replies Posted
No new posts Ältere Beiträge und User aus früherem... abelius-kiel Allgemeine Fragen zu MySQLDumper 3 2012-04-22, 10:16 View latest post
No new posts Upload dauert ewig und legt 180000 Da... Touareg35 Allgemeine Fragen zu MySQLDumper 2 2011-12-27, 22:47 View latest post
No new posts Wiederherstellen eines Shell-Dumps fe... Mätes Gelöst/Erledigt 2 2011-12-14, 14:30 View latest post
No new posts 33mb .SQL Datei ... beim Einspielen f... Klapp_Spaten Gelöst/Erledigt 16 2011-12-07, 20:38 View latest post
No new posts Backup in andere DB einspielen zz Gelöst/Erledigt 2 2011-09-18, 15:08 View latest post

 
CrackerTracker © 2004 - 2012 CBACK.de

Powered by Orion based on phpBB © 2001, 2002 phpBB Group
CBACK Orion Style based on FI Theme
All times are GMT + 2 Hours

phpBB SEO