2013-03-22 14 views
9

Wenn ich eine Tabelle (nennen wir es orders) auf einem Server von mir, z. B. local. Und ich habe diese Tabelle einen anderen Server von mir, zum Beispiel remote.Wie synchronisiert man zwei MySQL-Tabellen?

Mein Problem ist, was ist der beste Weg, um diese beiden Tabellen zu synchronisieren?

Ich möchte eine Lösung, die eine Registrierung ersetzt, wenn die lokale unterscheidet sich von der Remote. Und fügen Sie die Registrierung ein, wenn sie in der lokalen Tabelle nicht vorhanden ist.

Ich hatte versucht, einen Befehl dump ähnlich wie diese mit Dump, aber funktionierte nicht wie erwartet:

/usr/bin/mysqldump --defaults-file=~/my/conf.cnf --skip-opt --skip-add-locks --default-character-set=latin1 --disable-keys --no-create-db --no-create-info --dump-date --compress --quick --replace --where='date > DATE_SUB(NOW(), INTERVAL 1 DAY)' mydb orders >> /backup/myDump 

Wie kann ich das tun? Wie könnte ich ein Skript dafür machen?

+0

MySQL haben eine Master/Slave-Replikation eingebaut, ist es Overkill für Ihre Anwendung? http://dev.mysql.com/doc/refman/5.0/en/replication.html –

+1

Benötigen Sie bidirektionale Synchronisierung? Wenn dies der Fall ist, benötigen Sie eine Möglichkeit, Delete zu notieren, da eine bidirektionale Insert-Only-Synchronisierung gelöschte Zeilen fälschlicherweise neu erstellt. – cdhowie

+0

@cdhowie, nur unddirektional. – GarouDan

Antwort

9

pt-table-Sync kann dies tun.

+0

Wissen Sie, ob ich dieses Tool auch auf dem Mac installieren kann? – GarouDan

+0

Ja, ich benutze das Percona Toolkit regelmäßig auf einem Mac. Sie brauchen nur Perl und vielleicht ein paar Perl-Module. –

+0

Ich suche, aber weißt du, wie ich diese Warnung lösen kann? 'Warnung: Voraussetzung DBD :: mysql 3 nicht gefunden. 'Ich hatte' perl Makefile.PL 'ausgeführt. – GarouDan

0

Ich lösen ähnliches Problem der zwei Tabellen ständig zu synchronisieren.

Unter allen Skripten (von denen die meisten sind alt) ich diese aktiv entwickelt App gefunden haben (sieht vielversprechend)

https://github.com/mrjgreen/db-sync

Ich werde es versuchen, und vielleicht später werde ich ein Beispiel schreiben .

Verwandte Themen