Spec-Zone.ru › MySQL 8.4

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.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/replication-threads-monitor-main.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API