MySQL高可用实践
上QQ阅读APP看书,第一时间看更新

2.4 管理接口

这里所说的半同步复制管理接口包括相关插件和变量。

(1)实现半同步复制功能涉及两个插件,主库端的semisync_master.so和从库端的semisync_slave.so。

(2)系统变量控制插件行为,例如:

  • rpl_semi_sync_master_enabled:控制是否在主库上启用半同步复制。要启用或禁用插件,将此变量分别设置为1或0,默认值为0(即禁用)。
  • rpl_semi_sync_master_timeout:一个以毫秒为单位的值,用于控制主库在超时并退化到异步复制之前等待来自从库确认提交的时间,默认值为10000(10秒)。
  • rpl_semi_sync_slave_enabled:与rpl_semi_sync_master_enabled类似,控制启用从库的插件。

(3)状态变量用来反映半同步复制的状态信息,例如:

  • Rpl_semi_sync_master_clients:半同步从库的数量。
  • Rpl_semi_sync_master_status:半同步复制当前是否在主库上运行。如果已启用插件且未发生复制退化,则该值为ON。如果未启用插件,或者由于提交确认超时,主服务器已回退到异步复制,则为OFF。
  • Rpl_semi_sync_master_no_tx:从库未成功确认的事务数。
  • Rpl_semi_sync_master_yes_tx:从库成功确认的事务数。
  • Rpl_semi_sync_slave_status:半同步复制当前是否在从库上运行。如果插件已启用且从库的I/O线程正在运行,则此值为ON,否则为OFF。

仅当使用INSTALL PLUGIN命令安装相应的插件后,半同步相关系统和状态变量才可用。