29.12.11 Таблицы схемы производительности для репликации
- 29.12.11.1 Таблица binary_log_transaction_compression_stats
- 29.12.11.2 Таблица replication_applier_configuration
- 29.12.11.3 Таблица replication_applier_filters
- 29.12.11.4 Таблица replication_applier_global_filters
- 29.12.11.5 Таблица replication_applier_metrics
- 29.12.11.6 Таблица replication_applier_progress_by_worker
- 29.12.11.7 Таблица replication_applier_status
- 29.12.11.8 Таблица replication_applier_status_by_coordinator
- 29.12.11.9 Таблица replication_applier_status_by_worker
- 29.12.11.10 Таблица replication_asynchronous_connection_failover
- 29.12.11.11 Таблица replication_asynchronous_connection_failover_managed
- 29.12.11.12 Таблица replication_connection_configuration
- 29.12.11.13 Таблица replication_connection_status
- 29.12.11.14 Таблица replication_group_communication_information
- 29.12.11.15 Таблица replication_group_configuration_version
- 29.12.11.16 Таблица replication_group_member_actions
- 29.12.11.17 Таблица replication_group_member_stats
- 29.12.11.18 Таблица replication_group_members
Схема производительности предоставляет таблицы, которые показывают информацию о репликации. Это похоже на информацию, доступную из команды SHOW
REPLICA STATUS, но представление в виде таблиц более удобно и функционально:
Вывод
SHOW REPLICA STATUSудобен для визуального осмотра, но не очень подходит для программного использования. В противоположность этому, используя таблицы схемы производительности, информацию о статусе реплики можно искать с помощью общих запросовSELECT, включая сложныеWHEREусловия, соединения и так далее.Результаты запросов можно сохранить в таблицы для дальнейшего анализа или назначить переменным и, таким образом, использовать в хранимых процедурах.
Таблицы репликации предоставляют более подробную диагностическую информацию. Для многопоточной работы реплики,
SHOW REPLICA STATUSсообщает обо всех ошибках координатора и потоков-рабочих с помощью полейLast_SQL_ErrnoиLast_SQL_Error, поэтому видна только самая последняя из этих ошибок, и информация может быть утеряна. Таблицы репликации хранят ошибки на основе каждого потока без потери информации.Последняя обработанная транзакция отображается в таблицах репликации на основе каждого потока-работника. Эта информация недоступна из
SHOW REPLICA STATUS.Разработчики, знакомые с интерфейсом схемы производительности, могут расширить таблицы репликации, добавив строки в таблицы, чтобы получить дополнительную информацию.
MySQL Enterprise Edition включает два компонента, которые предоставляют информацию, связанную с производительностью репликации. Компонент статистики управления потоком репликации группы позволяет нескольким переменным состояния сервера, которые предоставляют информацию о выполнении управления потоком репликации группы; см. Раздел 7.5.7, «Компонент статистики управления потоком репликации группы». Компонент метрик репликации реализует две таблицы схемы производительности replication_applier_metrics и replication_applier_progress_by_worker, обе из которых описаны позже в этом разделе; для получения информации о компоненте см. Раздел 7.5.6, «Компонент метрик прикладного репликатора».
Описание таблиц репликации
Схема производительности предоставляет следующие таблицы, связанные с репликацией:
-
Таблицы, содержащие информацию о подключении реплики к источнику:
replication_connection_configuration: Параметры конфигурации для подключения к источникуreplication_connection_status: Текущий статус подключения к источникуreplication_asynchronous_connection_failover: Список источников для механизма резервного копирования асинхронного подключения
-
Таблицы, содержащие общую (не специфичную для потока) информацию о прикладном модуле транзакций:
replication_applier_configuration: Параметры конфигурации прикладного модуля транзакций на реплике.replication_applier_status: Текущий статус прикладного модуля транзакций на реплике.
-
Таблицы, содержащие информацию о конкретных потоках, ответственных за применение транзакций, полученных от источника:
replication_applier_status_by_coordinator: Статус координатора потока (пуста, если реплика не многопоточная).replication_applier_status_by_worker: Статус потоков-работников прикладного модуля, если реплика многопоточная.
-
Таблицы, содержащие информацию о фильтрах репликации на основе канала:
replication_applier_filters: Предоставляет информацию о фильтрах репликации, настроенных для конкретных каналов репликации.replication_applier_global_filters: Предоставляет информацию о глобальных фильтрах репликации, которые применяются ко всем каналам репликации.
-
Таблицы, содержащие информацию о членах репликации группы:
replication_group_members: Предоставляет сетевую и статусную информацию для членов группы.replication_group_member_stats: Предоставляет статистическую информацию о членах группы и транзакциях, в которых они участвуют.
Более подробная информация представлена в Разделе 20.4, «Мониторинг репликации группы».
Следующие таблицы схемы производительности для репликации продолжают заполняться, даже если схема производительности отключена:
Исключение составляют локальные временные данные (временные метки начала и окончания транзакций) в таблицах репликации replication_connection_status, replication_applier_status_by_coordinator и replication_applier_status_by_worker. Эта информация не собирается, когда отключение Performance Schema.
В следующих разделах описываются каждая таблица репликации более подробно, включая соответствие между столбцами, которые генерирует SHOW
REPLICA STATUS, и столбцами таблиц репликации, в которых содержится та же информация.
Остальная часть этого введения в таблицы репликации описывает, как Performance Schema заполняет их, и какие поля из SHOW
REPLICA STATUS не представлены в таблицах.
Жизненный цикл таблиц репликации
Performance Schema заполняет таблицы репликации следующим образом:
Перед выполнением
CHANGE REPLICATION SOURCE TOтаблицы пусты.После
CHANGE REPLICATION SOURCE TOпараметры конфигурации можно увидеть в таблицах. В этот момент активных потоков репликации нет, поэтому столбцыTHREAD_IDимеют значениеNULL, а столбцыSERVICE_STATEимеют значениеOFF.После
START REPLICAможно увидеть значенияTHREAD_ID, отличные от NULL. Потоки, которые находятся в состоянии ожидания или активны, имеют значениеSERVICE_STATE, равноеON. Поток, который подключается к источнику, имеет значениеCONNECTINGво время установления соединения иONв дальнейшем, пока соединение существует.После
STOP REPLICAстолбцыTHREAD_IDстановятсяNULL, а столбцыSERVICE_STATEдля потоков, которые больше не существуют, имеют значениеOFF.Таблицы сохраняются после
STOP REPLICAили остановки потоков из-за ошибки.Таблица
replication_applier_status_by_workerне пуста только в том случае, когда реплика работает в многопоточном режиме. То есть, если системная переменнаяreplica_parallel_workersбольше 0, эта таблица заполняется при выполненииSTART REPLICA, а количество строк показывает количество рабочих потоков.
Информация о статусе реплики, отсутствующая в таблицах репликации
Информация в таблицах репликации Performance Schema несколько отличается от информации, доступной с помощью SHOW
REPLICA STATUS, поскольку таблицы ориентированы на использование глобальных идентификаторов транзакций (GTID), а не имён и позиций файлов, и они представляют значения UUID сервера, а не значения ID сервера. Из-за этих различий несколько столбцов SHOW
REPLICA 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
Поля
Replica_IO_StateиReplica_SQL_Running_Stateне сохраняются. При необходимости эти значения можно получить из списка процессов, используя столбецTHREAD_IDсоответствующей таблицы репликации и объединив его со столбцомIDв таблицеINFORMATION_SCHEMAPROCESSLISTдля выбора столбцаSTATEпоследней таблицы.Поле
Executed_Gtid_Setможет содержать большой набор текста. Вместо этого таблицы Performance Schema показывают GTID транзакций, которые в настоящее время применяются репликой. В качестве альтернативы, набор выполненных GTID можно получить из значения системной переменнойgtid_executed.Поля
Seconds_Behind_MasterиRelay_Log_Spaceнаходятся на стадии обсуждения и не сохраняются.
Каналы репликации
Первый столбец таблиц репликации Performance Schema — это CHANNEL_NAME. Это позволяет просматривать таблицы по каналам репликации. В настройке репликации без нескольких источников существует один канал репликации по умолчанию. Если вы используете несколько каналов репликации на реплике, вы можете отфильтровать таблицы по каналу репликации, чтобы отслеживать определённый канал репликации. Дополнительную информацию см. в Разделе 19.2.2, «Каналы репликации» и Разделе 19.1.5.8, «Отслеживание репликации с несколькими источниками».
© 2025 Oracle
Licensed under the GPLv2 License.