6.7 MySQL主从同步机制
异步复制
默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能,
主库把binlog日志发送给从库即结束,并不验证从库是否接收完毕。
这意味着当主服务器或从服务器端发生故障时,有可能从服务器没有接收到主服务器发送过来的binlog日志,
这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失
半同步复制
当master在将自己binlog发给slave上的时候,要确保slave已经接受到了这个二进制日志以后,才会返回数据给客户端
同步复制
当master在将自己binlog发给slave上的时候,要确保slave已经接受到了这个二进制日志并执行,才返回给客户端数据
安装插件
主库上安装插件 mysql> install plugin rpl_semi_sync_master soname "semisync_master.so"; 从库上安装插件 mysql> install plugin rpl_semi_sync_slave soname "semisync_slave.so"; 查看插件是否安装成功 mysql> select plugin_name,plugin_status from information_schema.plugins where plugin_name like "%semi%";
启用半同步配置
在安装完插件后,半同步复制模式默认是关闭的,需要手动启用 主库上启用半同步复制模式 mysql> set global rpl_semi_sync_master_enabled=1; 在从库上启用半同步模式 mysql> set global rpl_semi_sync_slave_enabled=1; 查看半同步复制模式 mysql> show variables 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_slave.so rpl_semi_sync_slave_enabled=1 注意:是两行的,不是一行

浙公网安备 33010602011771号