Pull to refresh

Comments 10

Сейчас в mysql появилась групповая репликация. Благодаря Вашей статье просмотрел материал по ней. Говоря о репликации и базе данных больше всего интересует два момента: производительность и разрешение конфликты. В конце концов сейчас появились новые кластерные базы совместимые по протоколу с mysql и postgresql. И даже не одна. Проблема только что кластер из 10 таких совместимых баз работает по производительности как одна база mysql.

Рад, что смог натолкнуть Вас на изучение более детальной информации. Как я и писал, тема репликации весьма обширна, и достойна отдельных книг, так что осветить в одной статье все моменты не представится возможным. Тем более в данном материале я хотел лишь дать базовое понимание для тех, кто, возможно, не сталкивался с репликацией вообще, либо имеет незначительный опыт.

Хорошо бы еще добавить в статью про использование GTID при репликации — довольно давно появилось уже, и реально полезно и удобно в большинстве случаев.

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

Также стоит упомянуть про Docker образы от Bitnami со встроенными надстройками для быстрой репликации:


И все это льется в один поток. Если у вас большой трафик на запись (например, собираете телеметрию), то возможна ситуация, когда мастер справляется, а слейвы отстают безнадежно и вылечить это конфигурируя репликацию невозможно. Для понимания границ применимости.

Начиная с 5.7 есть возможность реплицировать слейв в несколько потоков: dev.mysql.com/doc/refman/5.7/en/replication-implementation-details.html
Но в целом согласен, что в случае, если используемая производительность на мастере выше, чем максимальная производительность слейва, он будет отставать, и никакой параллелизм не спасет.
Slave_IO_State — собственно, состояние репликации.

Нет, не верно написано. Это состояние IO потока, отвечающего за прием бинарного лога с мастера.


Есть еще Slave_SQL_State — это состояние потока применяющего релей лог.


Только наличие обоих работающих потоков говорит нам, что репликация работает.

Спасибо за уточнение! Исправил и дополнил пост.
Sign up to leave a comment.

Articles