从5.7版本开始MySQL通过扩展的方式支持了半同步复制,当主库执行一个更新操作事务时,提交操作会被阻止直到至少有一个半同步的,复制slave确认已经接收到本次更新操作,主库的提交操作才会继续,半同步复制的slave发送确认消息只会在本次更新操作记录已经记录到本地的relay log之后,如果没有任何slave发送确认消息而导致超时时,半同步复制会转换成异步复制。
半同步复制会对MySQL性能产生影响,因为主库的提交动作只有在收到至少一个从库的确认消息之后才能执行。但这个功能是性能和数据可靠性方面的权衡。
rpl_semi_sync_master_wait_point参数用来控制半同步复制的行为:
AFTER_SYNC:默认值
AFTER_COMMIT
需要配置的系统参数包括:
rpl_semi_sync_master_enabled:在主库配置,确保主库的半同步复制功能开启
rpl_semi_sync_master_timeout:配置主库等待多少毫秒时间来保证接收备库的确认消息,当超过这个时间时,半同步变成异步方式
rpl_semi_sync_slave_enabled:在从库配置,确保从库的半同步复制功能开启
互联网企业大多用的数据库是MySQL的,想要众多的IT工作者中脱颖而出,就需要拥有高深的技术,学习增值是必不可少的。学习之路,是贵在坚持的。老男孩教育MySQL DBA课程,几经更新课程,杜绝纸上谈兵,全企业真实案例结合理论授课,想深入的学习MySQL DBA的知识,可以关注下老男孩教育。
原文地址:http://blog.51cto.com/13543192/2121544
时间: 2024-10-08 19:54:51