Daten von lokalem- zum mysql- Server beim Hoster synchronisieren
Kalle
- datenbank
Hallo,
ich habe lokal einen mysql Server am Laufen und einen bei meinem Hoster. Nun würde ich gerne ein php-script schreiben, das gewisse Daten zwischen den Servern synchronisiert.
Was ist die beste Strategie dafür?
gruß
Kalle
Hi!
ich habe lokal einen mysql Server am Laufen und einen bei meinem Hoster. Nun würde ich gerne ein php-script schreiben, das gewisse Daten zwischen den Servern synchronisiert.
Was ist die beste Strategie dafür?
Welche Strategien kennst du bereits und wie passen sie oder auch nicht auf deine Gegebenheiten?
Lo!
Hello,
ich habe lokal einen mysql Server am Laufen und einen bei meinem Hoster. Nun würde ich gerne ein php-script schreiben, das gewisse Daten zwischen den Servern synchronisiert.
Was ist die beste Strategie dafür?
Welche Zugriffsrechte hast Du beim Hoster?
Hast Du einen eigenen Datenbankserver dort, oder wird der mit anderen Usern geteilt?
In der PHP-API sollte auf jeden Fall eine vernünftige Fehlerstrategie vorhanden sein für den Fall, dass der Datanbankserver nicht erreichbar ist oder nur gelesen werden kann. Der User sollte keine Billig-Die()-Seite bekommen, sondern eine qualifizierte und valide HTML-Seite.
Um welches Datenvolumen handelt es ich insgesamt beim NySQL-Server?
Werden offline (also auf der Kopie) auch Daten verändert?
Die einfachste Lösung wäre es.
EWin Shellscript schreiben, das per Cronjob aufgerufen wird:
den MySQL-Server kurtz runterfahren
eine Vollsicherung der MySQL-Dateien durchführen
den MySQL-Server wieder hochfahren
die gesicherten Dateien in einem targz-File in einem "Abholverzeichnis" zur Verfügung stellen
da das Script sich vermutlich nicht per SSH-Zertifikat auf deinem Server zuhause anmelden
kann, da der höchstwahrscheinlich keine feste IP hat, muss Dein Server zuhause dann
gelegentlich die Daten vom Host beim Provider abholen.
Wenn Du allerdings auf der DB zuhause auch arbeiten willst, dann muss da eine ganz andere Strategie her. Es müssten dann Transaktionslogs geschrieben werden und gegeneinander abgeglichen werden.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
So Umfangreich sind meine Zugriffsrechte leider nicht, dass ich ein Cronjop oder dergleichen auf dem Server beim Hoster starten kann.
Die auszutauschende Datenmenge ist nur am Anfang groß.
Das kann mit der Hand am Arm, sprich phpmyadmin ex-und import geschehen.
Man kann es mit dem Datenaustausch zwischen einem Onlineshop und einem lokalen Wawi vergleichen, wobei am Tag so etwa 20-30 Aktionen transveriert werden müssen. Also nicht die Welt.
Im laufenden Betrieb dachte ich, in den Datenbank jeweils ein aktualisierungs-Flag zu setzen.
So ist die Datenmenge doch recht überschaubar.
Das Ganze ist auch nicht sonderlich zeitkritisch.
Gruß
Hello,
So Umfangreich sind meine Zugriffsrechte leider nicht, dass ich ein Cronjob oder dergleichen auf dem Server beim Hoster starten kann.
Hast Du für Deinen Host zuhause ein Dyn-DNS eingerichtet?
Hast Du mal versucht, den MySQL-Server darauf aus dem Internet heraus anzusprechen? Dafür solltest Du einen 'username'@'%' einrichten mit äußerst eingeschränkten Rechten.
Wenn Du das beides realisiert hast, dann kannst Du als nächstes mal probieren, ob Dein Hoster Requests von innen nach außen (von deinem Account bei ihm) auf Port 3306 zulässt. Wenn das der Fall ist, kannst Du mittels eines PHP-Scriptes auf dem Webspace auch deinen MySQL-Server zuhause erreichen.
Nun müsstet Du nur deine Applikation auf dem Webspace genügend intelligent verfassen oder ändern. Für jedes datenverändernde Statement, das dort abläuft, wird das Statement nebst Status (rrfolgreich/schiefgegangen) in einer separaten Tabelle abgespeichert.
Nun musst Du nur ein Script erstellen, dass alle erfolgreichen Statements nochmal abfährt, aber nun auf den Datenbestand auf deinem MySQL-Servfer zuhause und sofort abbricht, wenn eins nicht erfolgreich ausgeführt werden kann.
Mit diesem "Transaktionslog für Arme" kannst Du die beiden MySQL-Server synchron halten, solange Du am betroffenen Datenbestand der Kopie keine lokalen Änderungen vornimmst.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg