半同步复制的管理界面有几个组件:
两个插件实现半同步功能。源端有一个插件,副本端有一个插件。
系统变量控制插件行为。一些例子:
控制是否在源上启用半同步复制。要启用或禁用插件,请分别将此变量设置为 1 或 0。默认值为 0(关闭)。
一个以毫秒为单位的值,它控制源在超时和恢复到异步复制之前等待提交以确认来自副本的时间。默认值为 10000(10 秒)。
类似于
rpl_semi_sync_master_enabled
,但控制副本插件。
所有 系统变量在 第 16.1.6.2 节“复制源选项和变量”和 第 16.1.6.3 节“副本服务器选项和变量”中进行了描述。
rpl_semi_sync_
xxx
从 MySQL 5.7.33 开始,您可以通过启用
replication_sender_observe_commit_only
限制回调的系统变量和replication_optimize_for_static_plugin_config
添加共享锁并避免不必要的锁获取来提高半同步复制的性能。随着副本数量的增加,这些设置会有所帮助,因为锁的争用会降低性能。半同步复制源服务器也可以从启用这些系统变量中获得性能优势,因为它们使用与副本相同的锁定机制。状态变量启用半同步复制监视。一些例子:
半同步副本的数量。
半同步复制当前是否在源上运行。如果插件已启用且未发生提交确认,则值为 1。如果插件未启用或源由于提交确认超时而退回到异步复制,则为 0。
副本未成功确认的提交数。
副本成功确认的提交数。
半同步复制当前是否在副本上运行。如果插件已启用且复制 I/O 线程正在运行,则为 1,否则为 0。
第 5.1.9 节“服务器状态变量” 中描述了 所有 状态变量。
Rpl_semi_sync_
xxx
系统和状态变量仅在适当的源或副本插件已安装时可用
INSTALL PLUGIN
。