2015-11-09 2 views
2

У меня есть основная база данных mysql и несколько подчиненных баз данных. Мастер используется только для WRITE и подчиненных только для READ.MYSQL Master-Slave Время синхронизации

Если я обновляю (WRITE), чтобы выполнить мастер, сколько времени потребуется для синхронизации с подчиненными устройствами?

Что произойдет, если кто-нибудь попытается выполнить ЧТЕНИЕ данных из любой из ведомых DB одновременно с временем синхронизации?

ответ

3

Вы можете выполнить Show slave status; на своих ведомых устройствах, чтобы увидеть ряд параметров, связанных с тем, как ваш ведомый работает синхронно с Master.

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

Вы можете убедиться в этом, посмотрев на Slave_SQL_Running_State: и увидеть, если он читает Slave has read all relay log; waiting for the slave I/O thread to update it и на мастер стороне Has sent all binlog to slave; waiting for binlog to be updated под show processlist;

В настоящее время существуют определенные крайние случаи, ошибки, и один офф, что вы должны быть в курсе. Вы можете прочитать больше Here и Here.

1

Время синхронизации может варьироваться в зависимости от скорости соединения между двумя машинами. Это хорошая идея, чтобы сравнить его.

Чтобы ответить на второй вопрос, если данные еще не были переданы от ведущего устройства к ведомому устройству, и вы читаете его с ведомого устройства, данные еще не будут прочитаны.

+0

Спасибо @wogsland. –