MySQL 8.4 Release Notes
19.5.1.32 复制重试和超时
全局变量replica_transaction_retries
的值设置了单线程或多线程副本上的应用线程自动重试失败事务的最大次数。事务在SQL线程执行失败时自动重试,这可能是因为InnoDB死锁或事务执行时间超过InnoDBinnodb_lock_wait_timeout
值。如果事务出现非临时错误,无法成功,它将不被重试。
默认情况下replica_transaction_retries
的值为10,这意味着在出现临时错误时,事务将被重试10次,然后应用线程停止。将变量设置为0可以禁用事务自动重试。在多线程副本上,指定的事务重试次数可以在所有应用线程和所有通道上进行。性能Schema表replication_applier_status
显示了每个复制通道上的事务重试次数,在COUNT_TRANSACTIONS_RETRIES
列中。
重试事务的过程可以在副本或Group Replication组成员上引起延迟,可以将其配置为单线程或多线程副本。性能Schema表replication_applier_status_by_worker
显示了单线程或多线程副本上的应用线程的事务重试详细信息,这包括了事务重试的时间戳、事务当前进度的时间戳、事务当前进度的时间戳、事务当前进度的时间戳等。这些数据可以帮助您确定事务重试是否是复制延迟的原因,并调查导致重试的根源错误。