Mailinglisten-Archive |
Hallo Peter, Am Mittwoch, 15. Februar 2006 12:17 schrieb Peter Bieling: > Lutz Zetzsche wrote: > > und was spricht gegen eine crongesteuerte Shellscript-Lösung? Konkret: > > > > 1. Cronjob auf Rechner A stößt Shellscript an, welches MySQL-Dump > > erstellt, lokal ablegt und dann per SSH mit scp oder rsnyc auf Rechner B > > transferiert. > > Hm, ich weiß nicht, ob man da einen MySQL-Dump braucht. Im Grunde > brauche ich ja immer nur die Datensätze, die nach dem letzten Download > neu hinzugekommen sind. Die alten Bestellungen bleiben nämlich so lange > bestehen, bis sie archiviert werden. Man würde dann also immer die alten > Daten mit herumschleppen. ;-( nein. Du mußt halt den Dump-Befehl mit der entsprechenden where-Klausel versehen, so daß nur die neuen Daten aus der Datenbank gezogen werden. :-) > Was hältst Du von dieser Variante: PHP-Script sieht per Cronjob oder > nach manuellem Anstoß regelmäßig nach, ob neue Daten da sind und > erstellt eine csv-Datei, die dann auf dem Server abgelegt wird. Ich würde es mit dem Dump-Befehl machen. Auf Linux-Ebene geht das Ganze wesentlich schneller, als mit PHP. Probier es mal aus. Bei großen Datenmengen ist der Unterschied besonders auffällig. > Wird die Datei heruntergeladen, wird irgendwo die letzten Auftragsnummer > hinterlegt, bis zu der synchronisiert wurde. Ja, die mußt Du Dir irgendwo merken. :-) > Dann geht es so weiter: > > 2. Cronjob auf Rechner B stößt Shellscript an, welches nach MySQL-Dump > > guckt und diesen importiert. > > Bei näherer Betrachtung braucht der Abgleich eigentlich erst dann > stattfinden, wenn jemand die Daten bearbeiten will. > Ich frage mich daher, ob man nicht doch lieber alles "manuell" auslösen > sollte. Das hat den Nachteil, daß derjenige, der die Daten bearbeitet, auch daran denken muß. > > Das ist die grobe Lösung. Natürlich müßte genau festgelegt werden, welche > > Daten ausgelesen werden und wie sie importiert werden. > > Ja eben. Daher dachte ich - nach dem Gebot der Datensparsamkeit ;-) - > dass man lieber nur das herunterlädt, was man braucht. Das sind dann die > Datensätze, die man problemlos wegschreiben kann. Wie gesagt: Das geht mit dem Dump (SELECT * FROM Auftragsdaten WHERE Auftragsnummer > ... INTO OUTFILE '/tmp/neuen_auftragsdaten.txt';). Guck Dir aber auch mal den Vorschlag von Stefan, mit Replikation zu arbeiten. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive