半同步复制的插件公开了许多状态变量,使您能够监视它们的操作。要检查状态变量的当前值,请使用
SHOW STATUS
:
mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';
从 MySQL 8.0.26 开始,提供了新版本的 source 和 replica 插件,
在系统变量和状态变量中将术语“ master ”和“ slave ”替换
为“ source ”和“ replica ” 。如果安装新的
rpl_semi_sync_source
和
rpl_semi_sync_replica
插件,新的系统变量和状态变量可用,但旧的不可用。如果你安装旧的
rpl_semi_sync_master
和
rpl_semi_sync_slave
插件,旧的系统变量和状态变量可用,但新的不可用。您不能在一个实例上同时安装新旧版本的相关插件。
第 5.1.10 节“服务器状态变量”
中描述了
所有
状态变量。一些例子是:
Rpl_semi_sync_
xxx
Rpl_semi_sync_source_clients
或者Rpl_semi_sync_master_clients
连接到源服务器的半同步副本的数量。
Rpl_semi_sync_source_status
或者Rpl_semi_sync_master_status
半同步复制当前是否在源服务器上运行。如果插件已启用且未发生提交确认,则值为 1。如果插件未启用或源由于提交确认超时而退回到异步复制,则为 0。
Rpl_semi_sync_source_no_tx
或者Rpl_semi_sync_master_no_tx
副本未成功确认的提交数。
Rpl_semi_sync_source_yes_tx
或者Rpl_semi_sync_master_yes_tx
副本成功确认的提交数。
Rpl_semi_sync_replica_status
或者Rpl_semi_sync_slave_status
半同步复制当前是否在副本上运行。如果插件已启用且复制 I/O(接收方)线程正在运行,则为 1,否则为 0。
当源由于提交阻塞超时或副本追赶而在异步或半同步复制之间切换时,它会适当地设置
Rpl_semi_sync_source_status
or
Rpl_semi_sync_master_status
状态变量的值。在源端从半同步复制自动回退到异步复制意味着
rpl_semi_sync_source_enabled
or
rpl_semi_sync_master_enabled
系统变量在源端的值为 1 是可能的,即使此时半同步复制实际上不在运行。您可以监视
Rpl_semi_sync_source_status
或
Rpl_semi_sync_master_status
状态变量以确定源当前使用的是异步复制还是半同步复制。