文档首页
MySQL 8.4 参考手册
相关文档 下载此手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  复制重试和超时

19.5.1.32 复制重试和超时

系统变量 replica_transaction_retries 的全局值设置单线程或多线程副本上应用程序线程自动重试失败事务的最大次数,然后再停止。当 SQL 线程由于 InnoDB 死锁而无法执行事务,或者事务执行时间超过 InnoDB innodb_lock_wait_timeout 值时,会自动重试事务。如果事务存在阻止其成功的非临时错误,则不会重试。

replica_transaction_retries 的默认设置为 10,这意味着在应用程序线程停止之前,将重试出现明显临时错误的失败事务 10 次。将变量设置为 0 将禁用事务的自动重试。在多线程副本上,指定的重试事务次数可以在所有通道的所有应用程序线程上进行。性能模式表 replication_applier_statusCOUNT_TRANSACTIONS_RETRIES 列中显示每个复制通道上发生的总重试事务次数。

重试事务的过程可能会导致副本或组复制组成员出现延迟,组复制组成员可以配置为单线程或多线程副本。性能模式表 replication_applier_status_by_worker 显示单线程或多线程副本上应用程序线程重试事务的详细信息。这些数据包括时间戳,显示应用程序线程从开始到结束应用最后一个事务(以及当前正在进行的事务何时开始)花费了多长时间,以及这比原始源和立即源上的提交时间晚多少。这些数据还显示了最后一个事务和当前正在进行的事务的重试次数,并允许您识别导致事务重试的瞬态错误。您可以使用这些信息查看事务重试是否导致复制延迟,并调查导致重试的失败的根本原因。