ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Чтобы не запутаться, я расскажу о простой настройке 1 Master — 1 Slave. Никаких цепей, никакого мастера-мастера и прочего...
Ваш первый учебник неверен, там должно быть binlog-do-db.
Репликация работает так.
Ведущее устройство записывает все транзакции в свой двоичный журнал.
Ведомое устройство считывает транзакции из двоичного журнала главного устройства и записывает их в свой журнал ретрансляции.
Только после этого ведомое устройство выполняет операторы из своего журнала ретрансляции.
binlog-do-db
заставляет мастер записывать в свой двоичный журнал только операторы для указанной БД.
replicate-do-db
заставляет ведомое устройство просто читать операторы из журнала реле, которые относятся к указанной БД.
replicate-do-db
не влияет на мастер, так как нет журнала реле, из которого можно было бы читать.
Часть LOCK TABLES
есть, так что данные непротиворечивы. Это предотвращает изменение данных на мастере во время выполнения резервного копирования данных.
Вы восстанавливаете базу данных из этой резервной копии на подчиненном устройстве, потому что при настройке подчиненного устройства вы не всегда начинаете все сначала. Поэтому сделано так, что вы просто предоставляете одинаковую базу данных на обоих серверах, потом сообщаете слейву, по каким координатам транзакции находится мастер и вуаля, можете начинать свою репликацию. Вы также можете разблокировать мастер после сброса данных. Просто убедитесь, что вы запустили ведомое устройство вовремя, прежде чем операторы в двоичном журнале будут потеряны из-за ротации журнала.
person
fancyPants
schedule
08.06.2017