MySQLDumper-Board Forum Index Follow me on Twitter

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


 Rev. 315 Command before Dump für phpBB3

Post new topicReply to topic
Author Message
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-10-13, 20:26    Rev. 315 Command before Dump für phpBB3 Reply with quoteBack to top

Rev. 315:

Ich versuche gerade die command_beforedump für mein phpBB3 zum laufen zu bekommen.

Folgende Situation:

- Befehl wird offensichtlich ausgeführt, im Backup kann ich sehen das der Flag für board_disable während des Backups gesetzt ist.
- Das Forum bleibt aber online - wird nicht deaktiviert.

Man kann sogar während des Backups Beiträge schreiben.

Nach einigem Suchen stellte sich heraus, das der phpBB3 Cache dafür verantwortlich ist.
In der data_global.php im cache Verzeichnis bleibt das Board aktiviert:
'board_disable' => '0',

Nun versuche ich den Cache auszutricksen, in dem ich ihm z.B. den letzen Timestamp einfach auf 0 setze. Denn müsste er, sollte jemand im Moment des Backups die Seite laden, die Config neu auslesen und den board_disable Flag bekommen.
Nach dem Backup kann man ja auch wieder nullen.

So sieht z.B. der Query vor dem Backup aus:
UPDATE `phpbb_config` set config_value=1 where config_name='board_disable'; UPDATE `phpbb_config` set config_value=0 where config_name='cache_last_gc'

Die zweite Update Anweisung wird aber scheinbar ignoriert.

Hat jemand ein Idee, wo ich auf dem Schlauch stehen könnte, oder müsste man dem Dumper erst die Annahme von zwei Anweisungen beibringen?

Gruß

Kevin

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
Anzeigen











Posted:    Anzeigen Back to top


    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2008-10-13, 21:32    Re: Rev. 315 Command before Dump für phpBB3 Reply with quoteBack to top

« Kevin » wrote:

müsste man dem Dumper erst die Annahme von zwei Anweisungen beibringen?

Ja, so ist es.

_________________
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    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-10-13, 22:16    (No subject) Reply with quoteBack to top

Ah - alles klar, danke.
Praktisch wäre es schon. Könnte man dann gleich in die Liste der SQL Befehle für phpBB3 aufnehmen (sollte es so funktionieren, wie ich es mir gedacht habe). So hat man aber mit einem phpBB3 keine Chance, es während des Backups zu deaktivieren. Der Cache kloppt einem immer dazwischen. Wink

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
Wolfgang
MSD-Professional
MSD-Professional




Age: 40
Joined: 18 Oct 2005
Posts: 98


austria.gif

PostPosted: 2008-10-25, 02:58    (No subject) Reply with quoteBack to top

Hallo Kevin,

probiere doch mal in der Tabelle phpbb_config in der Zeile board_disable den Spaltenwert is_dynamic von 0 auf 1 zu ändern.
Dann sollte sich phpbb-3 nicht "merken", ob das Board aktiviert oder deaktiviert ist, sondern das bei jedem Seitenaufruf überprüfen.

Würde mich echt interessieren, ob das schon ausreicht. (Anschließend nicht vergessen, den Cache zu löschen!)

LG, Wolfgang

OfflineView user's profileSend private message    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

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

Danke für den Tipp, Wolfgang! Very Happy
Werde ich mal ausprobieren.
Ich frage mich jedoch ob das dann nicht das Caching von phpBB3 ad absurdum führen würde. Es müsste ja bei jedem Seitenaufruf die Config komplett wieder ausgelesen werden, oder?

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
Wolfgang
MSD-Professional
MSD-Professional




Age: 40
Joined: 18 Oct 2005
Posts: 98


austria.gif

PostPosted: 2008-10-25, 11:45    (No subject) Reply with quoteBack to top

Das Caching-System von phpBB-3 birgt sowieso so manchen Stolperstein (zugegeben aber hauptsächlich für Entwickler und Leute, die MODs einbauen).

Die ganze config-Tabelle wird meines Erachtens nicht bei jedem Seitenaufruf neu eingelesen, Teile davon aber schon (vermutlich ein WHERE is_dynamic = 1).
Außerdem gibt es im Vanilla-phpBB in phpbb_config ja bereits etliche Einträge, bei denen is_dynamic auf 1 steht, beginnend - bei meinem phpMyAdmin mit 30 angezeigten Datensätze pro Seite - auf der 8. Seite und dem Eintrag cache_last_gc.

Wenn Du mir nicht zuvor kommst, probiere ich es nächstes Wochenende selbst aus. Smile
LG, Wolfgang

OfflineView user's profileSend private message    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-10-25, 12:00    (No subject) Reply with quoteBack to top

Ich muss jetzt erstmal bei einem Umzug helfen, werde es aber spätestens nächste Woche ausprobieren.
Wenn ich Ergebnisse habe, werde ich berichten.
Danke Wolfgang!

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-11-01, 15:49    (No subject) Reply with quoteBack to top

So, habe es getestet. Funktioniert wunderbar mit is_dynamic (mit dem PHP Backup)!
Vielen Dank nochmal für den Hinweis, wieder was gelernt. Very Happy

Einzige Einschränkung: mit dem Cronscript werden die Befehle nicht ausgeführt. Mal schauen was man da machen kann. Dafür bräuchte ich das primär.

*edit*
Merkwürdig: in der crondum.pl ist das ausführen der Befehle offensichtlich vorgesehen:
      $command_beforedump=($db_command_beforedump_array[$ii]) ? $db_command_beforedump_array[$ii] : "";
      $command_afterdump=($db_command_afterdump_array[$ii]) ? $db_command_afterdump_array[$ii] : "";


*edit2*
Erm, ich glaube da sitzt das Probem mal wieder vor dem Bildschirm. Im Log sehe ich, das die Commands offensichtlich auch schon mit Perl ausgeführt wurden.
Muss das nochmal in Ruhe auseinander dröseln.

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
moepschen
Moderator
Moderator




Age: 33
Joined: 21 Jan 2006
Posts: 809
Location: Frankfurt (Oder)


germany.gif

PostPosted: 2008-11-01, 19:31    (No subject) Reply with quoteBack to top

« Kevin » wrote:
Erm, ich glaube da sitzt das Probem mal wieder vor dem Bildschirm.


Das Problem, an diesem Problem ist, das die meisten Probleme das nicht selbst erkennen Mr. Green

Aber wenn dem so sei, spricht mal wieder alles für den Dumper

_________________
MfG moepschen

OfflineView user's profileSend private messageSend e-mailMSN Messenger    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-11-01, 19:34    (No subject) Reply with quoteBack to top

Doch scheinbar ein Problem mit dem Dumper, ich teste aber gerade noch, bevor ich wieder irgendwas nicht fundiertes schreibe. Wink
_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-11-01, 19:51    (No subject) Reply with quoteBack to top

So, jetzt habe ich das mal durchgetestet.
Das grundsätzliche Problem mit dem Cache ist durch das setzen von is_dynamic auf 1 beim board_disable Feld gelöst, wunderbar.

Nun scheint aber beim anlegen der
$databases['command_before_dump'] (in der mysqldumper.php)
und
$command_beforedump_array (in der mysqldumper.conf.php)
ein Problem zu bestehen.

Und zwar wird in beiden Dateien ein Zeilenumbruch vor dem schließenden '; erzeugt.
Also z.B:
$databases['command_before_dump'][1] = 'UPDATE `phpbb3_config` set config_value=1 where config_name=\'board_disable\'
';


oder in der conf.php:
$command_beforedump_array="UPDATE `phpbb3_config` set config_value=1 where config_name=\'board_disable\'
";


Das PHP Script stört sich da nicht dran, das Perl Script leider schon.
Wenn ich bei den Configs händisch den Zeilenumbruch raus nehme und die Dateien hochlade, werden die Kommandos auch vom Perl Script ausgeführt. Sonst nicht.
Sobald man in der Konfiguration im MSD rum mantscht, hat man natürlich wieder den Zeilenumbruch drin.
Je mehr Befehle man anwählt, also auch für andere DBs, desto mehr Zeilenumbrüche bekommt man in den Konfigurationsdateien.
Mag auch hier die Ursache für das teilweise "verschwinden" der Settings für Before- und Afterdump in der Konfigurationsübersicht liegen?

Ist dieser Bug schon gemeldet worden, bzw bekannt?

Gruß

Kevin

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
Wolfgang
MSD-Professional
MSD-Professional




Age: 40
Joined: 18 Oct 2005
Posts: 98


austria.gif

PostPosted: 2008-11-02, 04:34    (No subject) Reply with quoteBack to top

« Kevin » wrote:
Je mehr Befehle man anwählt, also auch für andere DBs, desto mehr Zeilenumbrüche bekommt man in den Konfigurationsdateien.
Mag auch hier die Ursache für das teilweise "verschwinden" der Settings für Before- und Afterdump in der Konfigurationsübersicht liegen?

Ist dieser Bug schon gemeldet worden, bzw bekannt?


Hallo Kevin,

was meinst Du damit? Embarassed

Dass das Command before Dump im Firefox bisweilen - bis heute - nicht richtig gespeichert wird, habe ich schon 2007 gemeldet. Aber bestimmt meinst Du etwas ganz anderes? Confused

LG, Wolfgang

OfflineView user's profileSend private message    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-11-02, 12:19    (No subject) Reply with quoteBack to top

Hi Wolfgang,

ich meine eigentlich was anderes. Aber das eine mag mit dem anderen zu tun haben.
Ich schätze das der Bug, den ich meine (und der auch reproduzierbar und Browser unabhängig ist) beim schreiben in die Konfigurationsdateien passiert. Irgendwat das ein str_replace oder das $nl zu früh greift.
Entweder in der functions.php oder in der functions_sql.php (function WriteSQL() ?) - ich blicke da leider gerade nicht wirklich durch.

Die Geschichte müsstest du auch reproduzieren können - wähle einfach mal zwei der Befehle aus, ordne die einer DB zu und schaue Dir die mysqldumper.conf.php und mysqldumper.php (oder welche Konfigurationsdateien du auch immer benutzt) danach mal an:

Beispiel mysqldumper.php (mit irgendeinem Befehl ausgewählt) - so sieht es aus (command_before_dump'][7]):
$databases['command_before_dump']=array();
$databases['command_before_dump'][0] = '';
[...]
$databases['command_before_dump'][6] = '';
$databases['command_before_dump'][7] = 'UPDATE forum SET options = options - 1 WHERE options & 1;
';
$databases['command_before_dump'][8] = '';

so sollte es aussehen (damit Perl den Befehl verarbeiten kann - ohne Zeilenumbruch):
$databases['command_before_dump']=array();
$databases['command_before_dump'][0] = '';
[...]
$databases['command_before_dump'][6] = '';
$databases['command_before_dump'][7] = 'UPDATE forum SET options = options - 1 WHERE options & 1;';
$databases['command_before_dump'][8] = '';

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit poster's website    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2008-11-02, 13:14    (No subject) Reply with quoteBack to top

Ja, ich kann die Beobachtung bestätigen. Danke für den Hinweis.

Fix für MSD 1.23:
Datei inc/functions.php ab Zeile 307
   if($databases['db_actual_cronindex']<0)
   {
      $csadb='$cron_save_all_dbs=1;'.$nl;
      $csadb.='$cron_db_array=qw('.$cron_db_array.');'.$nl;
      $csadb.='$cron_dbpraefix_array=qw('.$cron_dbpraefix_array.');'.$nl;
      $csadb.='$dbpraefix="'.$cron_dbpraefix.'";'.$nl;
      $csadb.='$command_beforedump_array="'.$cron_db_cbd_array.'";'.$nl;
      $csadb.='$command_afterdump_array="'.$cron_db_cad_array.'";'.$nl;
   }
   else
   {
      $csadb='$cron_save_all_dbs=0;'.$nl;
      $csadb.='$cron_db_array="";'.$nl;
      $csadb.='$cron_dbpraefix_array="";'.$nl;
      $csadb.='$dbpraefix="'.$cron_dbpraefix.'";'.$nl;
      if (!isset($databases['command_before_dump'][$databases['db_selected_index']])) $databases['command_before_dump'][$databases['db_selected_index']]='';
      $csadb.='$command_beforedump_array="'.$databases['command_before_dump'][$databases['db_selected_index']].'";'.$nl;
      if (!isset($databases['command_after_dump'][$databases['db_selected_index']])) $databases['command_after_dump'][$databases['db_selected_index']]='';
      $csadb.='$command_afterdump_array="'.$databases['command_after_dump'][$databases['db_selected_index']].'";'.$nl;
   }


ersetzen durch
   if($databases['db_actual_cronindex']<0)
   {
      $csadb='$cron_save_all_dbs=1;'.$nl;
      $csadb.='$cron_db_array=qw('.$cron_db_array.');'.$nl;
      $csadb.='$cron_dbpraefix_array=qw('.$cron_dbpraefix_array.');'.$nl;
      $csadb.='$dbpraefix="'.$cron_dbpraefix.'";'.$nl;
      $csadb.='$command_beforedump_array="'.trim($cron_db_cbd_array).'";'.$nl;
      $csadb.='$command_afterdump_array="'.trim($cron_db_cad_array).'";'.$nl;
   }
   else
   {
      $csadb='$cron_save_all_dbs=0;'.$nl;
      $csadb.='$cron_db_array="";'.$nl;
      $csadb.='$cron_dbpraefix_array="";'.$nl;
      $csadb.='$dbpraefix="'.$cron_dbpraefix.'";'.$nl;
      if (!isset($databases['command_before_dump'][$databases['db_selected_index']])) $databases['command_before_dump'][$databases['db_selected_index']]='';
      $csadb.='$command_beforedump_array="'.trim($databases['command_before_dump'][$databases['db_selected_index']]).'";'.$nl;
      if (!isset($databases['command_after_dump'][$databases['db_selected_index']])) $databases['command_after_dump'][$databases['db_selected_index']]='';
      $csadb.='$command_afterdump_array="'.trim($databases['command_after_dump'][$databases['db_selected_index']]).'";'.$nl;
   }


Dann wird die Konfiguration ohne Zeilenumbruch gespeichert.

_________________
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    
Kevin
Moderator
Moderator




Age: 37
Joined: 12 Nov 2006
Posts: 322
Location: Hamburg


germany.gif

PostPosted: 2008-11-02, 13:16    (No subject) Reply with quoteBack to top

And the fabulous and magical DSB strikes again like a lightning! Mr. Green

Danke, werde ich gleich testen. Very Happy

_________________
"Der Mensch, der bereit ist seine Freiheit aufzugeben um Sicherheit zu gewinnen, wird beides verlieren."

OfflineView user's profileSend private messageVisit 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 Dump ausgewählter Tabellen per Script gerfriedd Allgemeine Fragen zu MySQLDumper 2 2012-04-24, 10:09 View latest post
No new posts Dump restore stuck anthonyinit Errors and questions 4 2012-03-31, 04:45 View latest post
No new posts Unknown SQL-Command dbaran Errors and questions 3 2011-12-22, 17:09 View latest post
No new posts Nach PLESK Update auf 10.4.4 kein Per... MDMAN Gelöst/Erledigt 11 2011-12-20, 09:30 View latest post
No new posts Premature end of script headers: dump... Jens_K Gelöst/Erledigt 28 2011-11-11, 07:49 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