6.7 MySQL主从同步机制
异步复制
默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能,主库把binlog日志爱发送给从库即结束,并不验证从库是否接收完毕。这意味着当主服务器或从服务器发生故障时,有可能从服务器没有街道主服务器发送过来的binlog日志,这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失
本同步复制
当master在将自己binlog发送给slave上的时候,要确保slave已经接收到了这个二进制日志以后,才会返回数据给客户端。
同步复制
当master在将自己binlog发送给slave上的时候,要确保slave已经接收到了这个二进制日志并执行,才返回给客户端数据。
安装插件
主库上安装插件
mysql> install plugin rpl_semi_sync_master soname "senisync_master.so";
从库上安装插件
mysql> install plugin rpl_semi_sync_master soname "senisync_slave.so";
查看插件是否安装成功
mysql> select plugin_name,plugin_status from information_schema.plugins where plugin_name like "%semi%";
启用半同步配置
在安装完插件后,半同步复制模式默认是关闭的,需要手动启用
主库上启用半同步复制模式
mysql> set global rpl_semi_master_enabled=1;
从库上启用半同步复制模式
mysql> set global rpl_semi_slave_enabled=1;
查看半同步复制模式
mysql> showvariables like "rpl_semi_sync_%_enabled";
修改配置文件永久启用半同步复制模式
主库配置
vim /etc/my.cnf
plugin-load=rpl_semi_sync_master=semisync_master.so
rpl_semi_sync_master_enabled=1
从库配置
vim /etc/my.cnf
plugin-load=rpl_semi_sync_slave=semisync_master.so
rpl_semi_sync_slave_enabled=1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律