Как синхронизировать две таблицы MySQL?

если у меня есть таблица (назовем это orders) на одном из моих серверов, названном, например, local. И у меня в этой же таблице есть еще один мой сервер, названный, например,remote.

моя проблема в том, как лучше всего синхронизировать эти две таблицы?

Я хотел бы решение, которое заменяет реестр, если локальный отличается от удаленного. И включить реестр, если он не существует в локальной таблице.

Я попытался использовать дамп дампа команда похожа на эту, но работает не так, как ожидалось:

/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

как я могу это сделать? Как я мог написать сценарий для этого?

3 ответов


pt-table-sync может сделать это:http://www.percona.com/doc/percona-toolkit/2.1/pt-table-sync.html

см. также другие так Вопросы и ответы упоминание pt-table-sync.


возможно, "лучший" способ-использовать репликацию MySQL, задокументированную здесь:http://dev.mysql.com/doc/refman/5.5/en/replication.html


Я решаю аналогичную проблему синхронизации двух таблиц постоянно.

среди всех скриптов (большинство из которых старые) я нашел это активно разработанное приложение (выглядит многообещающим)

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

Я попробую, и, может быть, позже я напишу пример.