Spec-Zone.ru › MySQL 5.7

25.12.11 Таблицы Performance Schema для репликации

  • 25.12.11.1 Таблица replication_connection_configuration
  • 25.12.11.2 Таблица replication_connection_status
  • 25.12.11.3 Таблица replication_applier_configuration
  • 25.12.11.4 Таблица replication_applier_status
  • 25.12.11.5 Таблица replication_applier_status_by_coordinator
  • 25.12.11.6 Таблица replication_applier_status_by_worker
  • 25.12.11.7 Таблица replication_group_member_stats
  • 25.12.11.8 Таблица replication_group_members

Модуль Performance Schema предоставляет таблицы, которые отображают информацию о репликации. Это аналогично информации, доступной из оператора SHOW SLAVE STATUS, но представление в виде таблиц более доступно и удобно в использовании:

  • Вывод оператора SHOW SLAVE STATUS удобен для визуального осмотра, но не так удобен для программирования. Напротив, с помощью таблиц Performance Schema информацию о статусе реплики можно искать с помощью стандартных запросов SELECT, включая сложные WHERE условия, объединения и так далее.

  • Результаты запросов можно сохранять в таблицы для дальнейшего анализа или присваивать переменным, а затем использовать в хранимых процедурах.

  • Таблицы репликации предоставляют более подробную диагностическую информацию. Для многопоточной работы реплики, оператор SHOW SLAVE STATUS сообщает обо всех ошибках координаторных и рабочих потоков, используя поля Last_SQL_Errno и Last_SQL_Error, так что видна только самая последняя ошибка, и информация может быть потеряна. Таблицы репликации хранят ошибки на уровне каждого потока без потери информации.

  • Последняя обработанная транзакция видна в таблицах репликации на уровне каждого рабочего потока. Эта информация недоступна из SHOW SLAVE STATUS.

  • Разработчики, знакомые с интерфейсом Performance Schema, могут расширить таблицы репликации, добавляя строки в таблицы, чтобы предоставить дополнительную информацию.

Описание таблиц репликации

Модуль Performance Schema предоставляет следующие таблицы, связанные с репликацией:

  • Таблицы, содержащие информацию о подключении реплики к серверу-источнику репликации:

    • replication_connection_configuration: Параметры конфигурации для подключения к источнику

    • replication_connection_status: Текущий статус подключения к источнику

  • Таблицы, содержащие общую (не зависящую от потока) информацию об обработчике транзакций:

    • replication_applier_configuration: Параметры конфигурации для обработчика транзакций на реплике.

    • replication_applier_status: Текущий статус обработчика транзакций на реплике.

  • Таблицы, содержащие информацию о конкретных потоках, ответственных за применение транзакций, полученных от источника:

    • replication_applier_status_by_coordinator: Статус координаторного потока (пуста, если реплика не многопоточная).

    • replication_applier_status_by_worker: Статус потока-обработчика или потоков-рабочих, если реплика многопоточная.

  • Таблицы, содержащие информацию о членах группы репликации:

    • replication_group_members: Предоставляет сетевую и статусную информацию о членах группы.

    • replication_group_member_stats: Предоставляет статистическую информацию о членах группы и транзакциях, в которых они участвуют.

В следующих разделах подробно описывается каждая таблица репликации, включая соответствие между столбцами, создаваемыми оператором SHOW SLAVE STATUS, и столбцами таблиц репликации, в которых отображается та же информация.

Остальная часть этого введения в таблицы репликации описывает, как модуль Performance Schema заполняет их, и какие поля из SHOW SLAVE STATUS не представлены в таблицах.

Жизненный цикл таблиц репликации

Модуль Performance Schema заполняет таблицы репликации следующим образом:

  • Перед выполнением CHANGE MASTER TO, таблицы пусты.

  • После CHANGE MASTER TO, параметры конфигурации отображаются в таблицах. В этот момент активных потоков реплики нет, поэтому столбцы THREAD_ID пусты, а столбцы SERVICE_STATE имеют значение OFF.

  • После START SLAVE, можно увидеть значения, не являющиеся NULL THREAD_ID. Для потоков, которые неактивны или активны, значение SERVICE_STATE равно ON. Поток, который подключается к источнику, имеет значение CONNECTING во время установления соединения, и ON в дальнейшем, пока соединение сохраняется.

  • После STOP SLAVE, столбцы THREAD_ID становятся пустыми, а столбцы SERVICE_STATE для потоков, которые больше не существуют, имеют значение OFF.

  • Таблицы сохраняются после STOP SLAVE или после смерти потоков из-за ошибки.

  • Таблица replication_applier_status_by_worker непуста только при работе реплики в многопоточном режиме. То есть, если системная переменная slave_parallel_workers больше 0, эта таблица заполняется при выполнении START SLAVE, а количество строк отображает количество рабочих потоков.

SHOW SLAVE STATUS Информация, отсутствующая в таблицах репликации

Информация в таблицах репликации Performance Schema несколько отличается от информации, доступной из SHOW SLAVE STATUS, так как таблицы ориентированы на использование глобальных идентификаторов транзакций (GTIDs), а не имен и позиций файлов, и они представляют значения UUID сервера, а не идентификаторы сервера. Из-за этих различий несколько столбцов SHOW SLAVE STATUS не сохраняются в таблицах репликации Performance Schema или представлены иным образом:

  • Следующие поля относятся к именам файлов и позициям и не сохраняются:

    Master_Log_File
    Read_Master_Log_Pos
    Relay_Log_File
    Relay_Log_Pos
    Relay_Master_Log_File
    Exec_Master_Log_Pos
    Until_Condition
    Until_Log_File
    Until_Log_Pos
    
  • Поле Master_Info_File не сохраняется. Оно относится к файлу master.info, который был заменён безопасными таблицами.

  • Следующие поля основаны на server_id, а не на server_uuid, и не сохраняются:

    Master_Server_Id
    Replicate_Ignore_Server_Ids
    
  • Поле Skip_Counter основано на количестве событий, а не на GTID, и не сохраняется.

  • Следующие поля ошибок являются псевдонимами для Last_SQL_Errno и Last_SQL_Error, поэтому они не сохраняются:

    Last_Errno
    Last_Error
    

    В схеме Performance Schema эта информация об ошибках доступна в столбцах LAST_ERROR_NUMBER и LAST_ERROR_MESSAGE таблицы replication_applier_status_by_worker (и replication_applier_status_by_coordinator, если реплика многопоточная). Эти таблицы предоставляют более подробную информацию об ошибках по каждому потоку, чем доступно из Last_Errno и Last_Error.

  • Поля, содержащие информацию о параметрах фильтрации командной строки, не сохраняются:

    Replicate_Do_DB
    Replicate_Ignore_DB
    Replicate_Do_Table
    Replicate_Ignore_Table
    Replicate_Wild_Do_Table
    Replicate_Wild_Ignore_Table
    
  • Поля Slave_IO_State и Slave_SQL_Running_State не сохраняются. При необходимости эти значения можно получить из списка процессов, используя столбец THREAD_ID соответствующей таблицы репликации и объединив его со столбцом ID в таблице INFORMATION_SCHEMA PROCESSLIST, чтобы выбрать столбец STATE последней таблицы.

  • Поле Executed_Gtid_Set может содержать большой объём текста. Вместо этого таблицы Performance Schema показывают GTID транзакций, которые в данный момент применяются репликой. Альтернативно, набор выполненных GTID можно получить из значения системной переменной gtid_executed.

  • Поля Seconds_Behind_Master и Relay_Log_Space находятся на стадии обсуждения и не сохраняются.

Переменные состояния, перемещённые в таблицы репликации

Начиная с версии MySQL 5.7.5, следующие переменные состояния (ранее отслеживаемые с помощью SHOW STATUS) были перемещены в таблицы репликации Perfomance Schema:

  • Slave_retried_transactions

  • Slave_last_heartbeat

  • Slave_received_heartbeats

  • Slave_heartbeat_period

  • Slave_running

Эти переменные состояния теперь актуальны только при использовании одного канала репликации, так как они только отображают состояние канала репликации по умолчанию. При наличии нескольких каналов репликации используйте таблицы репликации Performance Schema, описанные в данном разделе, которые отображают эти переменные для каждого существующего канала репликации.

Каналы репликации

Первый столбец таблиц репликации Performance Schema — это CHANNEL_NAME. Это позволяет просматривать таблицы по каждому каналу репликации. В конфигурации репликации без нескольких источников существует один канал репликации по умолчанию. При использовании нескольких каналов репликации на реплике вы можете фильтровать таблицы по каналу репликации для мониторинга конкретного канала репликации. Дополнительную информацию см. в разделе 16.2.2, «Каналы репликации» и разделе 16.1.5.8, «Мониторинг репликации с несколькими источниками».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/performance-schema-replication-tables.html

Spec-Zone.ru

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