MySQLDumper-Board Forum Index Follow me on Twitter

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


 SQL Statements vor und nach Backup

Post new topicReply to topic
Author Message
Jens_K
Moderator
Moderator




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


germany.gif

PostPosted: 2009-08-21, 13:26    SQL Statements vor und nach Backup Reply with quoteBack to top

Hier kurz mein Problem:

Mein Hoster erlaubt leider nur eine max. Ausführungszeit von 9 Sekunden für Perl Scripte :-(

Jetzt würde ich mein (recht kleines, unbedeutendes) Forum trotzdem gerne per Cronjob sichern lassen und habe mir was ganz Feines ausgedacht.

Die beiden größten Tabellen sind die phpbb_search_wordlist und phpbb_search_wordmatch. Die brauche ich aber eigentlich gar nicht, da ich den Such-Index im Fall der Fälle auch aus den bestehenden Einträgen wieder neu aufbauen kann.
Ich sage der Konfiguration also, bitte sichere nur Tabellen mit einem Präfix 'phpbb_'. Vor der Sicherung wird die phpbb_search_wordmatch in search_wordmacht umbenannt, nach der Sicherung wieder retour. Das selbe Spiel mit der phpbb_search_wordlist. Dann braucht das Perl Script nur noch 4 Sekunden und ich bin glücklich.

Aber!

Der Dumper scheint sich als Allererstes zu ermitteln, welche Tabellen er denn bitteschön so alles sichern soll. Benenne ich per
ALTER TABLE phpbb_search_wordmatch RENAME AS search_wordmatch
die Tabelle um, findet er sie bei der Sicherung nicht mehr und steigt aus.

Quote:
Schwerwiegender Fehler: die CREATE-Anweisung der Tabelle 'phpbb_search_wordlist' in der Datenbank 'd00a9765' konnte nicht gelesen werden!
Überprüfe die Tabelle auf Fehler.: Table 'd00a9765.phpbb_search_wordlist' doesn't exist


Das ist mein erstes Problem.

Mein zweites Problem ist, dass ich es irgendwie nicht schaffe, 2 SQL Statements zur Ausführung vor der Sicherung hinzuzufügen.

Ich hoffe, ich hab's halbwegs verständlich beschrieben.

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: 2009-08-21, 13:53    Re: SQL Statements vor und nach Backup Reply with quoteBack to top

Leider funktioniert das so nicht.

« Jens_K » wrote:
Der Dumper scheint sich als Allererstes zu ermitteln, welche Tabellen er denn bitteschön so alles sichern soll.

Der Dumper ermittelt die Tabellennamen nicht dynamisch zum Zeitpunkt des Aufrufs, sondern in dem Moment, wo Du die Konfiguration speicherst, werden die zu sichernden Tabellen in der Konfigurationsdatei abgelegt. Deshalb hat ein temporäres Umbenennen der Tabellen hier keinen Effekt.

Quote:
Mein zweites Problem ist, dass ich es irgendwie nicht schaffe, 2 SQL Statements zur Ausführung vor der Sicherung hinzuzufügen.

Momentan führt der Dumper nur ein Statement aus.

Genau hier steckt noch eine Menge Verbesserungspotential im Dumper. Sowohl das dynamische Ermitteln der Tabellennamen, als auch das selektive Ein- und Aussschließen von Tabellen (nicht nur per Präfix), bzw. Wählen, ob nur die Struktur oder auch die Daten gesichert werden sollen, habe ich im Hinterkopf. Intern habe ich im Code bereits einiges umgestellt, um das später einmal umsetzen zu können.
Dies werde ich aber erst angehen können, nachdem noch einige, im Detail versteckte, "Unschönheiten" im SQLBrowser beseitigt sind. Deshalb mache ich hier keine Zeitangabe, sondern verbessere den Dumper still und heimlich immer mal wieder. Wink

Du könntest das lösen, indem Du ein kleines PHP-Skript schreibst, welches die beiden Tabellen umbenennt und diese Tabellen mit dem Originalnamen leer anlegt. Dann käme der Aufruf des Dumpers und anschließend löscht ein zweites Skript die beiden Tabellen wieder und benennt die umbenannten Tabellen wieder um.
Zum jetzigen Zeitpunkt kann dieser Fall nicht mit reinen Boardmitteln des Dumpers gelöst werden.

_________________
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: 2009-08-21, 14:12    (No subject) Reply with quoteBack to top

In welcher Konfigurationsdatei werden die Tabellennamen denn abgelegt?
Da ich eh' für jede DB eine eigene Konfigurationsdatei habe, habe ich mir jetzt für das - manuelle - Sichern per PHP eine (mit allen Tabellen) gemacht, für den Cronjob aber eine eigene. Und in der könnte ich dann doch einfach die beiden nicht gewünschten Tabellen entfernen.

Solange ich dann die Konfig-Datei über das Web GUI nicht erneut speichere, sollte das dann doch den gewünschten Effekt haben, oder?

Das mit dem kleinen PHP-Script ist so eine Sache ... ein ILE-RPG Programm bastle ich Dir gerne, das sowas macht ... aber PHP ist noch nicht so meine Stärke :-)

_________________
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    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2009-08-21, 14:32    (No subject) Reply with quoteBack to top

« Jens_K » wrote:
In welcher Konfigurationsdatei werden die Tabellennamen denn abgelegt?

PHP: Konfigname.php
Perl: Konfigname.conf.php
Quote:
Solange ich dann die Konfig-Datei über das Web GUI nicht erneut speichere, sollte das dann doch den gewünschten Effekt haben, oder?

Ja.

Quote:
Das mit dem kleinen PHP-Script ist so eine Sache ... ein ILE-RPG Programm bastle ich Dir gerne, das sowas macht ... aber PHP ist noch nicht so meine Stärke :-)

Ah, ein Mann aus der i-Welt. Smile
[offtopic]
Zend und IBM haben da gerade in jüngster Vergangenheit eine Menge getan, um PHP auf der i zu etablieren. Mit Release V6.1 ist PHP sogar im OS integriert. Schau Dir mal die PHP-Funktionen an, um native auf die i zuzugreifen und Du wirst PHP erstens innerhalb kürzester Zeit verstehen und zweitens schnell lieben. Wink
Damit ist nahezu alles möglich: Zugriff auf die DB2, Aufruf von RPG-Programmen mit Parameterübergabe und Entgegennahme, SOAP-Web-Services, Nutzen von ZendFramework, usw..
Kurzum: browserbasierte Anwendungen sind über ZendCore problemlos auf der i ausführbar und verbinden so die Power der i mit der unübertroffenen Webfähigkeit von PHP in geschäftskritischen und skalierbaren Anwendungen.
Wenn Du einmal browserbasierte Ausgaben über Templates in PHP gemacht hast, wirst Du RPG dafür nicht mehr nutzen. Smile
So, Ende der Werbestunde.
[/offtopic]

_________________
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: 2009-08-21, 15:14    (No subject) Reply with quoteBack to top

In meiner Konfigname.php steht aber nix weltbewegendes drin, nur

$databases['db_actual_tableselected'] = '';

Und in der zugehörigen Konfigname.conf.php kann ich gar nichts finden, was auf Tabellennamen hinweist.

[OT]
Auf unserer aktuellen Produktivmaschine (erst letzte Woche gekommen!) haben wir noch V5R4 drauf. Die wird auch primär im Rechenzentrumsbetrieb genutzt, wobei die darauf laufenden Anwendungen doch schon arg angestaubt sind. Geld für Neuentwicklungen hat scheinbar gerade niemand übrig :-)
[/OT]

_________________
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    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2009-08-21, 15:29    (No subject) Reply with quoteBack to top

« Jens_K » wrote:
In meiner Konfigname.php steht aber nix weltbewegendes drin
...
Und in der zugehörigen Konfigname.conf.php kann ich gar nichts finden, was auf Tabellennamen hinweist.

Oh, sorry. Da habe ich mich mit Datenbanknamen und Tabellennamen vertan. Die Datenbanknamen werden aus der Konfiguration genommen. Die Tabellennamen werden aber doch dynamisch ermittelt.
Dabei ist die Reihenfolge so, dass erst der SQL-Query geschickt wird (siehe crondump.pl ab Zeile 214) und anschließend dynamisch die Tabellennamen ermittelt werden (Zeile 314 ff). Insofern müsste das doch funktionieren.


Quote:

[OT]Auf unserer aktuellen Produktivmaschine (erst letzte Woche gekommen!) haben wir noch V5R4 drauf. [/OT]

Das macht nichts. Zend bietet für ZendCore ein wunderbar einfaches Setup an. Von einem Win-PC brauchst Du lediglich den User angeben (QSECOFR oder andere mit entsprechenden Berechtigungen) und schon wird alles per Savefile übertragen und installiert (inkl. MySQl wenn gewünscht). Das habe sogar ich hinbekommen. Smile
Ich kann Dir nur empfehlen die halbe Stunde einmal zu investieren und Dich da ein wenig umzusehen. Das lohnt sich definitiv.
Wenn das steht kannst Du anschließend uneingeschränkt sämtliche Open Source Programme wie Wikis, Foren, CRM-Systeme usw. auf der i laufen lassen (auch den Dumper *g*). Das spart sogar Kosten, da man so eben nicht neu entwickeln muss, sondern auf bewährte OS-Software setzen kann. Und da bietet PHP nun wirklich einen riesigen Pool an bereits lange entwickelter und ausgereifter Software - vom kleinen Gästebuch bis hin zum CMS Typo3 ist alles möglich.
Da müsste Dir eigentlich jeder EDV-Leiter zu Füßen liegen, wenn Du durch ein paar Mausklicks in der Setup-Routine der Software so viel neue Funktionalität ohne zusätzliche Kosten bereit stellen kannst. Smile

_________________
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: 2009-08-21, 15:43    (No subject) Reply with quoteBack to top

« DSB » wrote:
Insofern müsste das doch funktionieren.

Müsste, tut's aber nicht :-)

Ich bastle mal noch ein wenig rum.

Und den Zend Core werde ich mal installieren und gucken - Danke für den Tipp!

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: 2009-08-21, 15:48    (No subject) Reply with quoteBack to top

« Jens_K » wrote:
Müsste, tut's aber nicht :-)

Wird denn die Ausführung des Queries im complete Log positiv quittiert?

_________________
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: 2009-08-21, 16:43    (No subject) Reply with quoteBack to top

Ja.
Quote:
21.08.2009 16:41:41 Start Dump 'd00ba12c_2009_08_21_16_41.sql.gz'
21.08.2009 16:41:41 executing Query before Dump (ALTER TABLE phpbb_search_wordmatch RENAME AS search_wordmatch) was successful
21.08.2009 16:41:45 Schwerwiegender Fehler: die CREATE-Anweisung der Tabelle 'phpbb_search_wordmatch' in der Datenbank 'd00ba12c' konnte nicht gelesen werden! <br>
Überprüfe die Tabelle auf Fehler.: Table 'd00ba12c.phpbb_search_wordmatch' doesn't exist

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: 2009-08-21, 16:51    (No subject) Reply with quoteBack to top

Moment mal, warum ist die Fehlerausgabe auf deutsch? Ich denke, wir reden hier vom Perl-Skript? Dort ist alles auf englisch. Oder setzt Du versehentlich eine alte Version von crondump.pl ein?
_________________
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: 2009-08-21, 17:20    (No subject) Reply with quoteBack to top

Sorry. Mein Fehler.

Ich erzähle hier die ganze Zeit was von Perl, teste aber ständig mit der PHP Version des Backups. Ich dachte wohl, die Routinen sind die selben. Können sie ja aber gar nicht sein, ist ja ein anderes Script.

Ich habe übrigens zwei SQL Statements angelegt
vor_Dump = "ALTER TABLE phpbb_search_wordmatch RENAME AS search_wordmatch;ALTER TABLE phpbb_search_wordlist RENAME AS search_wordlist;"
nach_Dump = "ALTER TABLE search_wordmatch RENAME AS phpbb_search_wordmatch;ALTER TABLE search_wordlist RENAME AS phpbb_search_wordlist;"

Im Perl Log steht

Quote:
21.08.2009 17:17:02 Configurationfile 'Test_DB.conf.php' was loaded successfully from Querystring .
21.08.2009 17:17:02 Compression Library loaded successfully...
21.08.2009 17:17:02 FTP Library loaded successfully...
21.08.2009 17:17:02 Mail Library loaded successfully...
21.08.2009 17:17:02

executing Query before Dump was successful

21.08.2009 17:17:02 Characterset of connection and backup file set to utf8.
21.08.2009 17:17:02 Searching for tables inside database `d00ba12c` with prefix 'phpbb_'
21.08.2009 17:17:02 Optimizing tables:
[snip]
21.08.2009 17:Finished backup of database `d00ba12c`.
21.08.2009 17:17:04 Sending E-Mail ...
21.08.2009 17:17:05 E-Mail with backup d00ba12c_2009_08_21_17_17.sql.gz sent successfully.
21.08.2009 17:17:05 Recipient/s: meine@domain.de
21.08.2009 17:17:05

executing Query after Dump was successful

21.08.2009 17:17:05 Starting autodelete function:Keep the latest 10 backup files for each database and delete older ones.
21.08.2009 17:17:05 No file to delete.
21.08.2009 17:17:05 Everythings is done: closing script 21.08.2009 17:17:05
21.08.2009 17:17:05 total time used: 4 sec.
21.08.2009 17:17:05 #EOS (End of script)17:02 55 tables have been optimized
21.08.2009 17:17:02 Found 55 tables with 7872 records.
[snip]


Alles in Allem ... funktioniert!

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: 2009-08-21, 17:24    (No subject) Reply with quoteBack to top

Na dann scheint es für Perl ja doch zu funktionieren. Smile

Bei PHP werden auch einige Daten in der Session abgelegt. Hier werde ich das bei Gelegenheit noch einmal prüfen. Es kann sein, dass hier die Vorgehensweise abweicht. Natürlich ursprünglich immer vor dem Hintergrund Rechenzeit zu sparen so gut es geht, was in diesem speziellem Anwendungsfall wohl hinderlich ist.

_________________
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    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2009-08-21, 17:47    (No subject) Reply with quoteBack to top

Mich irritierte, dass die einzelnen Queries nicht im Log auftauchen und habe dabei noch ein paar Kleinigkeiten entdeckt, die verbessert werden sollten. So wird hier zum Beispiel das Socket nicht beachtet wenn eines benutzt wird.
Da kommt heute also noch ein Update des Perlskripts ins SVN. Wink

Du hast aber zumindest schon einmal entdeckt, dass im Perlskript bereits mehrere Queries hintereinander abgearbeitet werden können. Anhand des Semikolons wird der Gesamtstring zerlegt und dann die einzelnen Queries an MySQL gesendet. Erolg und/oder Mißerfolgt werden für jeden einzelnen Query protokolliert (so sollte es zumindest sein) und ausgegeben - zumindest nach meiner Verbesserung. Smile

_________________
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: 2009-08-21, 18:13    (No subject) Reply with quoteBack to top

Ich hatte Anfangs nur ein paar Probleme, zwei Queries in dem einen Feld unterzubringen. Irgendwie wurden die beim Speichern dann in zwei einzelne Felder zerlegt. Ich brauche aber ja jeweils 2 Statements vor und nach dem Backup.

Keine Ahnung wie, aber jetzt habe ich das in 2 Strings untergebracht.

_________________
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    
DSB
Developer
Developer




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


germany.gif

PostPosted: 2009-08-21, 18:22    (No subject) Reply with quoteBack to top

Ja, da muss ich noch etwas optimieren.
Ich habs auf dem Zettel. 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    
Display posts from previous:      
Post new topicReply to topic


 Jump to:   


Show permissions
Similar topics
Topic Author Forum Replies Posted
No new posts Perl Backup immer Error 404 luckyheiko Fehler / Probleme 6 2012-05-23, 10:06 View latest post
No new posts Nach Installation Shop weg Dieter Fehler / Probleme 3 2012-04-26, 19:14 View latest post
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 Backup bricht ab Timm85 Fehler / Probleme 2 2012-04-21, 00:20 View latest post
No new posts Backup mit FTP ist leer pelikan1999 Gelöst/Erledigt 9 2012-04-07, 18:05 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