Как синхронизировать две таблицы 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
Я попробую, и, может быть, позже я напишу пример.