Spec-Zone.ru › MySQL 8.4

19.5.1.32 Повторные попытки репликации и таймауты

Глобальное значение системной переменной replica_transaction_retries задаёт максимальное количество попыток автоматического повторного выполнения неудачных транзакций для потоков-применителей на реплике с однопоточным или многопоточным режимом работы до остановки. Транзакции автоматически повторяются, когда поток SQL не может выполнить их из-за тупиковой ситуации InnoDB или когда время выполнения транзакции превышает значение InnoDB innodb_lock_wait_timeout. Если транзакция имеет ошибку, не являющуюся временной, которая препятствует её успешному завершению, она не повторяется.

Значение по умолчанию для replica_transaction_retries составляет 10, что означает, что неудачная транзакция с, по-видимому, временной ошибкой повторяется 10 раз, прежде чем поток-применитель остановится. Установка переменной в 0 отключает автоматическое повторение транзакций. На реплике с многопоточным режимом указанное количество повторных попыток выполнения транзакций может выполняться на всех потоках-применителях всех каналов. Таблица Performance Schema replication_applier_status отображает общее количество повторных попыток выполнения транзакций на каждом канале репликации в столбце COUNT_TRANSACTIONS_RETRIES.

Процесс повторного выполнения транзакций может вызвать задержку на реплике или на узле группы репликации, который может быть настроен как реплика с однопоточным или многопоточным режимом работы. Таблица Performance Schema replication_applier_status_by_worker отображает подробную информацию о повторных попытках выполнения транзакций потоками-применителями на реплике с однопоточным или многопоточным режимом работы. Эти данные включают отметки времени, показывающие, сколько времени потребовалось потоку-применителю для применения последней транзакции от начала до конца (и когда началось выполнение текущей транзакции), а также сколько времени это заняло после подтверждения на исходном источнике и непосредственном источнике. Данные также показывают количество повторных попыток для последней транзакции и текущей транзакции, что позволяет определить временные ошибки, которые привели к повторным попыткам выполнения транзакций. Вы можете использовать эту информацию, чтобы определить, являются ли повторные попытки выполнения транзакций причиной задержки репликации, и исследовать первопричину отказов, приведших к повторным попыткам.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/replication-features-timeout.html

Spec-Zone.ru

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