上节课已经学习了主从复制,一般情况下都是异步复制,即从库读取到的事务都是主库已经提交落盘的事务,
这里就会有一个隐患,如果主库事务未落盘时崩溃,而从库又不存在最新的事务,则会出现数据丢失的情况。
所以有了复制的升级版,半同步复制。从MySQL 5.6 到 5.7 到 8.0 都得到了不同程度的强化。
而且,MariaDB 与 MySQL 虽然都有该功能,但实现方式并不相同,学习时,需要注意分支和版本。

AFTER_SYNC 功能是 MySQL 5.7 新增的,以保证主库发生问题时,不丢失数据。
即使主库宕机,所有在主库上已经提交的事务都能保证已经同步到从库的中继日志中,不会丢失任何数据。
具体配置参数时, 推荐开启双1,即 innodb_flush_log_at_trx_commit = 1, sync_binlog = 1,
如果主库异常宕机后可以正常重启,主从数据最终会保持一致。
对于 MariaDB 而言,新版本中使用半同步复制时,已经不需要安装插件 semisync.so, 因为代码已经集成到 MariaDB Server 中。
最后,如果业务对数据可靠性要求较高,而且是主从架构,实际使用时建议开启半同步复制。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




