Репликация полукруга ведущий-ведомый не работает в MySQL

Я не знал, как это описать, поэтому называю это полукругом. Вот что я делаю.

Сервер A
Сервер B = это подчиненный сервер A
Сервер C = Это подчиненный сервер сервера B

Когда я что-то обновляю на сервере A, это отражается на сервере B. Но это же изменение не отражается на сервере C.

Только когда я обновляю что-то на сервере B, тогда изменение отражается на сервере C.

Как сделать так, чтобы любые изменения, сделанные на сервере A, приходили на сервер B (который уже работает), а затем на сервер C?

РЕДАКТИРОВАТЬ
В ходе расследования я обнаружил, что когда я вношу некоторые изменения на сервере A, его положение в файле журнала изменяется. Но когда эти изменения отражаются на сервере B, положение файла журнала сервера B не меняется. Именно по этой причине сервер C не знает, были ли какие-либо изменения на сервере B, если я явно не изменю что-то (вставка, обновление, удаление) на сервере B.

Так есть ли способ указать MySQL на увеличение позиции файла журнала, когда Slave получает обновления от Master?

0
задан 1 January 2017 в 23:54
1 ответ

FYI- обычно называется репликационной цепью репликации. Для того, чтобы включить ее, необходимо убедиться, что на сервере B установлены следующие настройки:

log_bin
log_slave_updates

Это подскажет серверу B обновить положение лога при получении обновлений от А. Документацию по этому можно найти здесь (выделено дополнительно):

Обычно ведомый сервер не записывает никаких обновлений, которые поступают от a главный сервер к своему собственному двоичному журналу. Эта опция приводит к тому, что ведомый записывает обновления, выполняемые его потоком SQL, в собственный двоичный лог. Для того, чтобы эта опция имела какой-то эффект, ведомое устройство также должно быть запущено с опция --log-bin для включения двоичной регистрации. --log-slave-updates is используется, когда вы хотите связать серверы репликации цепочкой. Например, вы можете хотят настроить серверы репликации, используя такое расположение

A -> B -> C

Здесь A служит ведущим для ведомого B, а B - ведущим. для раба С. Чтобы это сработало, В должен быть и мастером, и рабом. Вы должны запускать и A, и B с --log-bin , чтобы включить двоичную регистрацию, и B с опцией --log-slave-updates, чтобы обновления, полученные от A записываются Б в его двоичный журнал.

4
ответ дан 4 December 2019 в 11:44

Теги

Похожие вопросы