19.2.3 Потоки репликации
Функциональность MySQL репликации реализуется с использованием следующих типов потоков:
Поток считывания двоичного журнала. Источник создаёт поток для отправки содержимого двоичного журнала реплике при подключении реплики. Этот поток можно идентифицировать в выводе команды
SHOW PROCESSLISTна источнике как потокBinlog Dump.-
Поток приёма I/O репликации. Когда на сервере реплики выполняется команда
START REPLICA, реплика создаёт поток I/O (приёмник), который подключается к источнику и запрашивает отправку обновлений, записанных в его двоичных журналах.Поток приёма репликации считывает обновления, которые отправляет поток
Binlog Dumpисточника (см. предыдущий пункт), и копирует их в локальные файлы, составляющие релейный журнал реплики.Состояние этого потока отображается как
Slave_IO_runningв выводе командыSHOW REPLICA STATUS. Поток применения SQL репликации. Когда
replica_parallel_workersравно 0, реплика создаёт поток SQL (применитель) для чтения релейного журнала, записанного потоком приёма репликации, и выполнения транзакций, содержащихся в нём. Когдаreplica_parallel_workersравно, имеетсяN>= 1Nпотоков применителя и один координирующий поток, который последовательно считывает транзакции из релейного журнала и планирует их применение потоками обработки. Каждый рабочий поток применяет транзакции, назначенные ему координирующим потоком.
Вы можете включить дальнейшую параллелизацию задач на реплике, установив системную переменную replica_parallel_workers на значение больше 0. В этом случае реплика создаёт указанное количество потоков обработки транзакций плюс координирующий поток, который считывает транзакции из релейного журнала и назначает их рабочим потокам. Реплика с replica_parallel_workers (slave_parallel_workers) установленным значением больше 0 называется многопоточной репликой. Если вы используете несколько каналов репликации, для каждого канала устанавливается количество потоков, указанное с помощью этой переменной.
Многопоточные реплики также поддерживаются NDB Cluster. Дополнительную информацию см. в Разделе 25.7.11, «NDB Cluster Replication Using the Multithreaded Applier».
© 2025 Oracle
Licensed under the GPLv2 License.