Otto Normalverbraucher: Datenbanktabellen synchronisieren

Hallo,

gibt es ein Tool mit dem man 2 MySQL Datenbanktabellen zeitnah synchronisieren kann? Die eine Tabelle liegt auf einem lokalen Server, die andere im Internet. Dabei geht es im Grunde darum, dass Änderungen einer Tabelle auf einem Mysql Server beim Provider (1&1) zeitnah (max 5 Minuten) auf eine Tabelle auf einem lokalen mysql-Server übertragen werden soll.

Im Grunde würde es reichen wenn nur bestimmte Felder übertragen würden.

Und das Ganze auch umgekehrt.

  1. gibt es ein Tool mit dem man 2 MySQL Datenbanktabellen zeitnah synchronisieren kann? Die eine Tabelle liegt auf einem lokalen Server, die andere im Internet. Dabei geht es im Grunde darum, dass Änderungen einer Tabelle auf einem Mysql Server beim Provider (1&1) zeitnah (max 5 Minuten) auf eine Tabelle auf einem lokalen mysql-Server übertragen werden soll.

    Das Stichwort lautet Replikation.

    Und das Ganze auch umgekehrt.

    Hier wird's kompliziert und das Stichwort lautet Multi-Master-Replication; soweit ich mich entsinne, müssen Konflikte hier bei MySQL auf Applikationsebene behandelt werden.

    1. Uups,

      da scheint es mir einfacher PHP und FTP zu bemühen. Den Job könnte man ja auf dem 1&1 Server mit nem Cron anschubsen.

      Ich dachte nur, da das ja etwas ist, was öfter vorkommt, könnte ich mir die Arbeit sparen.

      1. da scheint es mir einfacher PHP und FTP zu bemühen. Den Job könnte man ja auf dem 1&1 Server mit nem Cron anschubsen.

        Ich dachte nur, da das ja etwas ist, was öfter vorkommt, könnte ich mir die Arbeit sparen.

        Solange es nur um Replikation in eine Richtung geht (also ein Read/Write-Primary, beliebig viele Read-Only-Secondaries) ist das relativ einfach und ich würde erwarten stabiler und auf lange Sicht weniger Arbeit, als das von Hand zu machen. Mehrere schreibbare Master erzeugen erheblich mehr Aufwand und ich würde das i.A. erstmal nicht empfehlen.

    2. Dabei geht es im Grunde darum, dass Änderungen einer Tabelle auf einem Mysql Server beim Provider (1&1) zeitnah (max 5 Minuten) auf eine Tabelle auf einem lokalen mysql-Server

      Das Stichwort lautet Replikation.

      Nun ja. Dafür braucht der "Otto Normalverbraucher" aber Rechte, die er beim Massenhoster 1und1(ionos) nur dann hat, wenn er einen "dedicated server" oder einen "virtuellen privaten server" gemietet hat.

      Im Hinblick auf die Preise und dem Nickname „Otto Normalverbraucher“ vermute ich mal, er hat ein „ganz normales shared hosting“ Angebot genommen und da wird das mit der Replikation nichts, weil er auf den Datenbankmanagementsystemen nur Mitnutzer ist, also gerade mal Rechte an seinen eigenen Datenbanken und gerade nicht an der Konfiguration hat des Servers hat.

  2. Hallo,

    gibt es ein Tool mit dem man 2 MySQL Datenbanktabellen zeitnah synchronisieren kann? Die eine Tabelle liegt auf einem lokalen Server, die andere im Internet. Dabei geht es im Grunde darum, dass Änderungen einer Tabelle auf einem Mysql Server beim Provider (1&1) zeitnah (max 5 Minuten) auf eine Tabelle auf einem lokalen mysql-Server übertragen werden soll.

    Im Grunde würde es reichen wenn nur bestimmte Felder übertragen würden.

    Einfacher ist es, doch gleich die ganze Tabelle zu serialisieren. Meine Datenstruktur sieht so aus:

    [{name => 'foo', vname => 'bar'},{}..]
    

    Und damit hole ich mir als JSON per HTTPs gleich mehrere Tabellen von Remote auf meinen lokalen PC/MySQL. Die JSON-Dateien sind gleichzeitig ein Backup, die könnte ich umgekehrt auch wieder remote einspielen über meinen Webservice.

    MFG

  3. Fall Replikation nicht geht (was ich mal annehme):

    Schon mal über die Verwendung von sqlite nachgedacht? Da liegen die Daten in einer Datei, die man ganz einfach per FTP hin- und herschubsen kann. Freilich ist dann jedes Mal die Frage zu beantworten, welche Datei denn nun als neue genommen werden soll. Und natürlich sollte niemand diese Datei vom Server direkt herunter laden können (z.B. durch Ablage außerhalb des Webroots)

    Das bei Mysql mitgelieferte Tool heisst übrigens „mysqldump“ bzw. „mysql“. Freilich brauchst Du dafür aber entweder einen ssh-Zugang oder Du packst den Shellaufruf vpn „mysqldump“ bzw. „mysql“ in PHP ein, versiehst das Ganze mit einem wirksamen Passwortschutz und lädst die Datei mit dem Dump aus einem geschütztem Verzeichniss herunter. Pass aber auf, dass es Dir nicht wie dem oberschlauen Typ geht, der meinte von Ungarn aus einen "nur in Deutschland noch nicht ganz legalen Webshop" betreiben zu müssen, dessen Daten dann frei herunterladbar waren - was einem gewissen, lauten, Nochanwalt offenbar erst jüngst zum Verhängnis wurde.