19.2.2 Каналы репликации
В MySQL репликации с несколькими источниками реплики открывают несколько каналов репликации, по одному для каждого сервера-источника. Каналы репликации представляют путь транзакций, идущих от источника к реплике. Каждый канал репликации имеет свой собственный поток получателя (ввода/вывода), один или несколько потоков применяющего (SQL) и журнал реле. Когда транзакции из источника принимаются потоком получателя канала, они добавляются в файл журнала реле канала и передаются потокам применяющего канала. Это позволяет каждому каналу функционировать независимо.
Этот раздел описывает, как каналы могут использоваться в топологии репликации, и какое влияние они оказывают на репликацию с одним источником. Инструкции по настройке источников и реплик для репликации с несколькими источниками, запуску, остановке и сбросу реплик с несколькими источниками, а также мониторингу репликации с несколькими источниками см. в разделе 19.1.5, «MySQL репликация с несколькими источниками».
Максимальное количество каналов, которое может быть создано на одном сервере реплики в топологии репликации с несколькими источниками, составляет 256. Каждый канал репликации должен иметь уникальное (непустое) имя, как описано в разделе 19.2.2.4, «Правила именования каналов репликации». Коды ошибок и сообщения, которые выдаются при включении репликации с несколькими источниками, указывают канал, который сгенерировал ошибку.
Каждый канал на реплике с несколькими источниками должен реплицировать данные из другого источника. Нельзя настроить несколько каналов репликации с одной реплики на один источник. Это связано с тем, что идентификаторы серверов реплик должны быть уникальными в топологии репликации. Источник различает реплики только по их идентификаторам серверов, а не по именам каналов репликации, поэтому он не может распознать разные каналы репликации с одной и той же реплики.
Реплика с несколькими источниками также может быть настроена как многопоточная реплика, установив системную переменную replica_parallel_workers на значение больше 0. При этом на каждой реплике для каждого канала есть указанное количество потоков применяющего, плюс координирующий поток для их управления. Настроить количество потоков применяющего для отдельных каналов нельзя.
Реплики с несколькими источниками можно настроить с фильтрами репликации для определенных каналов репликации. Канальные фильтры репликации могут использоваться, когда одна и та же база данных или таблица присутствует на нескольких источниках, и реплике требуется реплицировать её только из одного источника. Для репликации на основе GTID, если одна и та же транзакция может поступить из нескольких источников (например, в топологии «алмаз»), необходимо убедиться, что настройка фильтрации одинакова во всех каналах. Дополнительную информацию см. в разделе 19.2.5.4, «Фильтры репликации, основанные на каналах».
Для обеспечения совместимости с предыдущими версиями MySQL сервер автоматически создаёт при запуске по умолчанию канал с именем пустая строка (""). Этот канал всегда присутствует; его нельзя создать или удалить пользователем. Если не создано других каналов (с непустыми именами), операторы репликации действуют только на канале по умолчанию, таким образом все операторы репликации от более старых реплик работают как ожидается (см. раздел 19.2.2.2, «Совместимость с предыдущими операторами репликации»). Операторы, относящиеся к каналам репликации, как описано в этом разделе, могут использоваться только при наличии как минимум одного именованного канала.
© 2025 Oracle
Licensed under the GPLv2 License.