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.