MySQL репликация - мастер-раб - PullRequest
       23

MySQL репликация - мастер-раб

2 голосов
/ 07 сентября 2011

Я успешно настроил среду master-to-slave, и она определенно работает нормально.

Единственная проблема, с которой я столкнулся, заключается в том, что при выборе счетчика из таблицы они не совпадают, НО выбираются через 5 минут от главного устройства, при этом на подчиненном устройстве создается 50 строк, а также 50 строк (вот почему я сказал, что ' уверен что работает нормально)

Master:

+----------+
| COUNT(*) |
+----------+
|    77634 |
+----------+
1 row in set (0.00 sec)

Подчиненный:

+----------+
| COUNT(*) |
+----------+
|    76932 |
+----------+
1 row in set (0.00 sec)

Есть идеи, почему это произошло? возможно ли, что когда я изменил ведомое устройство, чтобы указать на мастер, используя команду «CHANGE MASTER TO», позиция двоичного файла журнала @ мастер уже переместилась?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Попробуйте 'SHOW SLAVE STATUS' на ведомом устройстве, чтобы узнать, не возникли ли какие-либо ошибки.

Вы также можете попробовать загрузить данные с главного устройства, чтобы восстановить синхронизацию.

0 голосов
/ 07 сентября 2011

Репликация MySQL не является «надежной» и не может автоматически выполнять повторную синхронизацию, если происходит сбой. Есть много способов, как это может пойти не так, даже без незапланированных перезагрузок и т. Д.

Вам необходимо АКТИВНО следить за ним, чтобы иметь возможность работать в течение любого промежутка времени.

Вам нужно, по крайней мере, сделать две вещи:

  1. Проверьте вывод команды SHOW SLAVE STATUS (на каждом подчиненном устройстве), чтобы убедиться, что потоки запущены, ошибок нет, а seconds_behind_master не слишком много.
  2. Периодически запускайте какую-либо проверку согласованности для каждого ведомого / ведущего устройства - я рекомендую mk-table-checkum с опцией --replication

И подключите вывод этих проверок к вашей системе мониторинга, чтобы ваш оперативный персонал был предупрежден.

Ваши сотрудники также должны знать, как это исправить (сброс / восстановление или другое исправление). Вам обязательно нужно будет написать какую-нибудь статью для Ops.

Я делал это раньше - это не тривиально, и вы легко можете ошибиться.

...