MySQL Replication Master - Master обеспечивает идентичный статус - PullRequest
1 голос
/ 10 февраля 2012

У меня установлена ​​репликация Master to Master между двумя MySQL 5.0

Мое требование заключается в том, что перед запуском приложения я должен убедиться, что база данных идентична. Я хотел бы подтвердить, что для параметра "seconds_behind_master" команды "show slave status", равного 0, достаточно, чтобы считать две базы данных синхронизирован?

http://dev.mysql.com/doc/refman/5.0/en/show-slave-status.html

Спасибо

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Нет, этого недостаточно для гарантии того, что базы данных идентичны, просто ведомое устройство выполнило все операторы из двоичного журнала ведущего устройства.Вы можете обновить или удалить большие порции данных в ведомой базе данных, и у них по-прежнему будут секунды после master = 0, но ведомый, безусловно, не будет идентичен master.

Вам следует использовать такой инструмент, как Percona pt-table-checkum , если вы действительно хотите убедиться, что базы данных идентичны.

1 голос
/ 11 февраля 2012

На самом деле это не гарантия, поскольку репликация «мастер-мастер» не гарантирует атомарность на разных серверах.

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

Итак, я говорю, читайте его каждую секунду в течение 10 секунд, и если все они равны 0, без ошибок, вывероятно, достаточно хорош, если сравнивать контрольные суммы, как предложил Айк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...