MySQLDumper-Board Forum Index Follow me on Twitter

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


 Probleme mit MySQL 4.0 [Config für CRON]

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





Joined: 05 Dec 2011
Posts: 8


blank.gif

PostPosted: 2011-12-05, 18:40    Probleme mit MySQL 4.0 [Config für CRON] Reply with quoteBack to top

Hallo,

ich habe bei Multipartdumps unter MySQL 4.0 Probleme. Unter 5.1 tritt das Problem nicht auf. Es gibt ja zwei Config Files. Eines, das für den Cron Parser vorbereitet ist (.conf.php) und eines für mysqldumper selbst (.php).
Es macht den Anschein, als kommt mysqldumper beim Anlegen des Perl Conf Files durcheinander. Und es scheint ein wenig darauf anzukommen, ob die DB alphabetisch vor oder hinter der mysql DB kommt.

Hier der Auszug aus der PHP Config:
$databases['db_selected_index'] = '0';
$databases['db_actual'] = 'a_test';
$databases['multi']=array();
$databases['multi'][0] = 'a_test';
$databases['multi'][1] = 'test_db';
$databases['multi_praefix']=array();
$databases['multi_praefix'][0] = '';
$databases['multi_praefix'][1] = '';
$databases['multisetting'] = 'a_test;test_db';
$databases['db_actual_tableselected'] = '';

und hier aus der Perl:
$cron_dbindex=-2;
$cron_printout=1;
$cronmail=1;
$cronmail_dump=0;
$cronmailto="";
$cronmailto_cc="";
$cronmailfrom="mysqldumper";
$cron_use_sendmail=1;
$cron_smtp="localhost";
$cron_smtp_port="25";
@cron_db_array=("a_test");
@cron_dbpraefix_array=("");
@cron_command_before_dump=("");
@cron_command_after_dump=("");

Eine DB ist verloren gegangen. Und es ist unabhängig davon, wie oft ich die Konfig neu anlege. Bei nur einer gewählten DB ist das Array komplett leer.

Das Problem tritt zwar während des Crons auf, die Config wird aber durch PHP erstellt, also ist es wahrscheinlich hier richtig.

Gibt es da irgendeinen Kompatibiltätsmodus für alte MySQL Versionen? Bzw. ist das Problem und woran liegt es?

Viele Grüße
Martin

OfflineView user's profileSend private message    
Anzeigen











Posted:    Anzeigen Back to top


    
marting
knows MySQLDumper
knows MySQLDumper





Joined: 05 Dec 2011
Posts: 8


blank.gif

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

Ein Workaround für mich ist, die eine DB manuell zu wählen, weil auf dem Server glücklicherweise nur eine DB relevant ist. Dann steht sie auch ordnungsgemäß im Array.
OfflineView user's profileSend private message    
marting
knows MySQLDumper
knows MySQLDumper





Joined: 05 Dec 2011
Posts: 8


blank.gif

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

Noch ein Nachtrag: Wenn Multidumper ausgewählt ist, stehen bei PHP und Perl gleichermaßen die korrekten DBs in der Oberfläche, aber die Perl Config ist trotzdem falsch.
OfflineView user's profileSend private message    
DSB
Developer
Developer




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


germany.gif

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

Hallo Martin,

ja, das riecht nach einem Bug den ich bisher bei mir aber noch nicht nachvollziehen konnte. Er scheint auch nur auf wenigen Servern aufzutreten, so dass die Eingrenzung zusätzlich erschwert wird.

Da wir mittlerweile aber an Version 2 arbeiten und dort das gesamte Handling überarbeitet wird, werden wir an der 1.xer Reihe keine weiteren Bug fixes mehr vornehmen.

_________________
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    
marting
knows MySQLDumper
knows MySQLDumper





Joined: 05 Dec 2011
Posts: 8


blank.gif

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

Okay, wenn Interesse besteht, würde ich mich selbst um einen Fix bemühen, alternativ klappt bei mir zum Glück ja der Workaround.
OfflineView user's profileSend private message    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2011-12-06, 12:36    (No subject) Reply with quoteBack to top

Das kannst Du natürlich gerne machen und das Ergebnis hier veröffentlichen.
Allerdings ist die Stelle so richtig gruseliger PHP4-Spaghetti-Code und macht keinen Spaß. Wink
Deshalb machen wir in V2 ja alles neu.

_________________
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    
marting
knows MySQLDumper
knows MySQLDumper





Joined: 05 Dec 2011
Posts: 8


blank.gif

PostPosted: 2011-12-06, 14:47    (No subject) Reply with quoteBack to top

Ich habe schon schlimmeres gesehen :-)
Okay, Fehler lokalisiert. Hat nichts mit MySQL 4 zu tun. Ist bei MySQL 5 sogar noch heftiger. Statt einer werden bis zu zwei DBs nicht gesichert (wegen zusätzlicher information_schema Datenbank).

Eine mögliche Fehler Konstellation ist (betrifft nur Multidump-User):
[x] A
[x] B
[_] information_schema
[x] K
[_] mysql
[x] N
[x] O
[x] P
=> A, B, N und P werden gesichert, K und O aber nicht.

Andere Konstellation:
[x] A
[_] B
[_] information_schema
[x] J
[x] K
[_] mysql
[x] N
[x] O
[x] P
=> A, J, N und O werden gesichert, K und P aber nicht

Oder anders: Sei i die alphabetische Position der information_schema DB und j von mysql, so werde die i+1 te der ausgewählten DBs sowie die j+2 te nicht mitgesichert.

Der langen Rede kurzer Sinn: In WriteCronScript wird über ein Array iteriert, das eine andere Länge hat, als das, welches geändert wird. Fix functions.php (aktuelle Version) ab Zeile 391:


<    foreach ($databases['Name'] as $k=>$v) {
<        if (in_array($v, $dontBackupDatabases)) {
<            unset($cron_db_array[$k],
<                   $cron_dbpraefix_array[$k],
<                   $cron_command_before_dump[$k],
<                   $cron_command_after_dump[$k],
<                   $newDbNames[$k]);
<        }
<    }

>    foreach ($databases['Name'] as $k=>$v) {
>        if (in_array($v, $dontBackupDatabases)) {
>            unset($newDbNames[$k]);
>        }
>    }
>    foreach ($cron_db_array as $k=>$v) {
>        if (in_array($v, $dontBackupDatabases)) {
>            unset($cron_db_array[$k],
>                   $cron_dbpraefix_array[$k],
>                   $cron_command_before_dump[$k],
>                   $cron_command_after_dump[$k]);
>        }
>    }


Der Einfachkeit halber zwei Schleifen, wenngleich das sicher eleganter geht.

Gruß Martin

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





Joined: 05 Dec 2011
Posts: 8


blank.gif

PostPosted: 2011-12-06, 14:54    (No subject) Reply with quoteBack to top

Vielleicht noch kurz zur Erklärung (im Multidump-Fall):
$databases['Names'] hält alle DBs
$cron_db_array hält alle ausgewählten DBs
information_schema steht in databases['Names'] z.B. an 5. Stelle. In $cron_db_array gibt es information_schema aber nicht, deshalb wird die DB entfernt, die in databases['Names'] eigentlich erst an 6. Stelle steht.

OfflineView user's profileSend private message    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2011-12-06, 22:58    (No subject) Reply with quoteBack to top

@marting
Super und herzlichen Dank für Deinen Fix. Obwohl ich anhand des Codes erwarte, dass der Grund gefunden und eliminiert ist: kann das bitte mal jemand gegenchecken, der das Problem hat und hier Feedback geben?

_________________
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    
marting
knows MySQLDumper
knows MySQLDumper





Joined: 05 Dec 2011
Posts: 8


blank.gif

PostPosted: 2011-12-07, 12:06    (No subject) Reply with quoteBack to top

Normalerweise müsste das Problem jeden betreffen. Probier doch mal eine Sicherung bei Dir mit dieser Konstellation. Es tritt halt erst dann auf, wenn insgesamt mehr DBs gesichert werden sollen, als die Stelle der ersten Sonderdatenbank in alphabetischer Reihenfolge ist.

Kannst Du den Fehler mit diesen Infos nicht reproduzieren? Wenn Du nicht weißt, was ich meine, dann schicke mir doch mal per PN eine Liste Deiner DBs und ich sage Dir, welche Du beispielsweise auswählen musst, um den Fehler zu reproduzieren.

OfflineView user's profileSend private message    
DSB
Developer
Developer




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


germany.gif

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

Ich schaue mir das am Sonntag mal genau an. Vorher komme ich nicht dazu.
Wäre natürlich schön, wenn jemand anders das vorher schon einmal checken könnte.

_________________
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: 1710
Location: Nähe Bielefeld


germany.gif

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

Ich falle da leider flach und kann nicht testen, denn bei All-Inkl.com habe ich nicht einen User für mehrere DBs.

Und eine lokale XAMPP Installation habe ich im Moment nicht ...

_________________
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    
marting
knows MySQLDumper
knows MySQLDumper





Joined: 05 Dec 2011
Posts: 8


blank.gif

PostPosted: 2012-02-03, 12:07    (No subject) Reply with quoteBack to top

Gibt es dazu noch etwas neues?
OfflineView user's profileSend private message    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2012-02-03, 21:22    (No subject) Reply with quoteBack to top

Der Code aus dem Fix oben soll funktionieren.
_________________
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    
Display posts from previous:      
Post new topicReply to topic


 Jump to:   


Show permissions
Similar topics
Topic Author Forum Replies Posted
No new posts Auswahl "Alle Datenbanken" ... Massa MySQLDumper 1.24 8 2012-05-02, 09:52 View latest post
No new posts Probleme mit Umlauten und DUK sam5599 Fehler / Probleme 1 2012-04-13, 12:46 View latest post
No new posts Cron Job virus50 Fehler / Probleme 3 2012-04-12, 20:50 View latest post
No new posts MySQL-ERROR / nach phpmyadmin passwor... stone_22 MySQLDumper 1.24 4 2012-03-31, 00:40 View latest post
No new posts Cronjob macht Probleme infinity Fehler / Probleme 12 2012-03-22, 15:38 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