Не могу до конца понять, что вообще значит термин "репликация" в рамках MySQL.
На Хабре я встретила следующее описание процесса репликации:
Изменения данных, происходящие на мастере, повторяются на репликах (но
не наоборот). Поэтому запросы на изменение данных (INSERT, UPDATE,
DELETE и т. д.) выполняются только на мастере, а запросы на чтение
данных (проще говоря, SELECT) могут выполняться как на репликах, так и
на мастере.
...
Важно понимать, что при репликации передаются не сами измененные
данные, а только запросы, вызывающие изменения.
Получается, что если на реплике изначально пустая база данных, то в неё будут добавляться только те данные, которые добавляются на мастер только после включения репликации? Т.е., те данные, которые были добавлены на мастер до репликации, на реплику не попадут?
С другой стороны, много где говорится, что репликация - это практически то же, что и синхронизация. А это как я понимаю, приведение баз данных к одному виду...
Ответ
Изначально на репликах находится копия мастера. Если все-таки вы настроите репликацию на пустую базу, то довольно быстро репликация будет сломана, так как не будут обнаружены нужные данные для выполнения запросов из бин-логов. Настройка реплики предполагает, что вы не просто копируете данные с мастера, но и очень точно выставляете координаты в бин-логах, начиная с которых начинаются выполняться новые команды.
Т.е., те данные, которые были добавлены на мастер до репликации, на
реплику не попадут?
Сама процедура настройки репликации предполагает, что вы сначала воссоздаете копию мастера. Однако, если вам удастся этого избежать и не разломать в дальнейшем репликацию, да, они на реплику не попадут.
Комментариев нет:
Отправить комментарий