Multi-source репликация MySQL5.7 — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
Строка 19: | Строка 19: | ||
replicate-do-db = mybase | replicate-do-db = mybase | ||
sync_binlog = 0 | sync_binlog = 0 | ||
− | '''gtid_mode''' | + | '''gtid_mode = ON''' - собственно, включает GTID<br> |
'''enforce-gtid-consistency''' - обязательный параметр для GTID, который не даёт всё поломать(без этого параметра не стартует MySQL с gtid)<br> | '''enforce-gtid-consistency''' - обязательный параметр для GTID, который не даёт всё поломать(без этого параметра не стартует MySQL с gtid)<br> | ||
− | '''log_bin | + | '''log_bin = mysql-bin''' - ведение бинарного лога для мастера (с него читает слейв). Когда на сервере используются GTID, и если бинарный лог не включен, при перезапуске сервера после аварийного выключения, некоторые GTID могут быть потеряны, что приведет к сбою репликации. При обычном завершении работы набор идентификаторов GTID из бинарного лога сохраняется в таблице mysql.gtid_executed<br> |
− | '''server_id''' | + | '''server_id = 1''' идентификатор мастер сервера, цифровое значение может быть отличным от единицы в данном примере |
Версия 15:13, 7 марта 2022
Появилась нужда в настройке репликации MySQL, с нескольких master-серверов будем лить в один slave-сервер
В MySQL при использовании GTID есть две глобальные переменные, о которых необходимо знать:
gtid_executed – содержит набор всех транзакций из бинарного лога gtid_purged – содержит набор транзакций, которые были зафиксированы на сервере, но не содержащиеся в бинарном логе, gtid_purged является подмножеством gtid_executed
Для репликации с использованием GTID в MySQL в конфиге мастера достаточно прописать следующие значение
gtid_mode = ON enforce-gtid-consistency log_bin = mysql-bin log-slave-updates = 0 server_id = 1 replicate-do-db = mybase sync_binlog = 0
gtid_mode = ON - собственно, включает GTID
enforce-gtid-consistency - обязательный параметр для GTID, который не даёт всё поломать(без этого параметра не стартует MySQL с gtid)
log_bin = mysql-bin - ведение бинарного лога для мастера (с него читает слейв). Когда на сервере используются GTID, и если бинарный лог не включен, при перезапуске сервера после аварийного выключения, некоторые GTID могут быть потеряны, что приведет к сбою репликации. При обычном завершении работы набор идентификаторов GTID из бинарного лога сохраняется в таблице mysql.gtid_executed
server_id = 1 идентификатор мастер сервера, цифровое значение может быть отличным от единицы в данном примере
https://habr.com/ru/post/276581/
https://www.k-max.name/linux/replikaciya-mysql-master-slave/
https://www.percona.com/blog/2013/10/02/mysql-5-7-multi-source-replication/
https://dev.mysql.com/doc/refman/5.7/en/replication-multi-source.html