19.2.3.1 Мониторинг основных потоков репликации
Выполнение команды SHOW PROCESSLIST предоставляет информацию о происходящем на источнике и реплике в отношении репликации. Для получения информации о состояниях источника см. Раздел 10.14.4, «Состояния потоков источника репликации». Для состояний реплики см. Раздел 10.14.5, «Состояния потоков ввода-вывода (приёмника) репликации» и Раздел 10.14.6, «Состояния потоков SQL репликации».
Следующий пример демонстрирует, как три основных потока репликации — поток дампинга двоичного журнала, поток ввода-вывода репликации (приёмника) и поток SQL репликации (применяющего) — отображаются в выводе команды SHOW PROCESSLIST.
На сервере источника вывод команды SHOW
PROCESSLIST выглядит следующим образом:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 2
User: root
Host: localhost:32931
db: NULL
Command: Binlog Dump
Time: 94
State: Has sent all binlog to slave; waiting for binlog to
be updated
Info: NULL
Здесь поток 2 — это поток, обслуживающий подключённую реплику. Информация State указывает, что все ожидающие обновления были отправлены реплике, и источник ожидает новых обновлений. Если на сервере источника нет потоков Binlog Dump, это означает, что репликация не запущена; то есть в данный момент нет подключённых реплик.
На сервере реплики вывод команды SHOW
PROCESSLIST выглядит так:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 10
User: system user
Host:
db: NULL
Command: Connect
Time: 11
State: Waiting for master to send event
Info: NULL
*************************** 2. row ***************************
Id: 11
User: system user
Host:
db: NULL
Command: Connect
Time: 11
State: Has read all relay log; waiting for the slave I/O
thread to update it
Info: NULL
Информация State указывает, что поток 10 — это поток ввода-вывода репликации (приёмника), взаимодействующий с сервером источника, а поток 11 — это поток SQL репликации (применяющего), обрабатывающий обновления, хранящиеся в журналах репликации. В момент выполнения команды SHOW PROCESSLIST оба потока были в состоянии ожидания, ожидая дальнейших обновлений.
Значение в столбце Time может показать, насколько отстаёт реплика от источника. См. Раздел A.14, «MySQL 8.4 FAQ: Репликация». Если на стороне источника проходит достаточное время без активности в потоке Binlog
Dump, источник определяет, что реплика больше не подключена. Как и для любого другого клиентского подключения, таймауты зависят от значений net_write_timeout и net_retry_count; более подробную информацию об этих значениях см. в Разделе 7.1.8, «Системные переменные сервера».
Команда SHOW REPLICA STATUS предоставляет дополнительную информацию об обработке репликации на сервере реплики. См. Раздел 19.1.7.1, «Проверка состояния репликации».
Также можно получить информацию о потоках Binlog Dump источника следующим образом:
SELECT * FROM performance_schema.threads WHERE PROCESSLIST_COMMAND LIKE "Binlog Dump%"
Binlog Dump% используется для получения либо Binlog Dump, либо Binlog Dump
GTID, в зависимости от режима дампинга binlog.
© 2025 Oracle
Licensed under the GPLv2 License.