Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Replication Retries and Timeouts

19.5.1.32 复制重试和超时

全局系统变量 replica_transaction_retries 设置单线程或多线程副本上 applier 线程自动重试失败事务的最大次数,之前停止。事务将自动重试,因为 SQL 线程无法执行它们,因为 InnoDB 死锁,或者事务的执行时间超过 InnoDB innodb_lock_wait_timeout 值。如果事务具有非临时错误,阻止它成功,它将不被重试。

变量 replica_transaction_retries 的默认设置为 10,这意味着具有临时错误的失败事务将被重试 10 次,然后 applier 线程停止。将变量设置为 0 将禁用事务的自动重试。在多线程副本上,指定的交易重试次数可以在所有 applier 线程和所有通道上发生。性能模式表 replication_applier_status 显示每个复制通道上发生的总交易重试次数,在 COUNT_TRANSACTIONS_RETRIES 列中。

交易重试过程可能会导致副本或组复制组成员上的延迟,可以配置为单线程或多线程副本。性能模式表 replication_applier_status_by_worker 显示单线程或多线程副本上 applier 线程的交易重试的详细信息。这些数据包括显示 applier 线程应用最后一个事务从开始到结束所需时间的时间戳(以及当前事务何时开始),以及自原始源和直接源提交以来所需的时间。这些数据还显示最后一个事务和当前事务的重试次数,并使您能够确定交易重试是否是复制延迟的原因,并调查导致重试的失败的根本原因。