MySQL主从复制中的半同步复制
实验MySQL借助Google提供的插件,完成半同步复制模型;物理机依然是Win7系统,虚拟机为CentOS 7;
主节点:192.168.255.2
从节点:192.168.255.3
先配置为主从复制模型:
在主节点:
# vim /etc/my.cnf
从节点:
# vim /etc/my.cnf
启动两节点的myslq服务:
# systemctl start mariadb.service
在主节点:
配置有复制权限的账号:
> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'192.168.255.%' IDENTIFIED BY 'replpass';
> FLUSH PRIVILEGES;
注意:如果从服务器也打算创建这个有复制权限的账号,要先启用主从设置后,再执行此命令:
查看二进制日志事务的位置:
在从节点:
设置同步位置:
> CHANGE MASTER TO MASTER_HOST='192.168.255.2',MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000003',MASTER_LOG_POS=499;
主从复制配置完成;
分别在主从节点上安装相应的插件:
在主节点:
> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
启用为半同步的主节点:
> SET GLOBAL rpl_semi_sync_master_enabled=1;
从节点:
安装从节点插件:
> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
启用为半同步从节点
> SET GLOBAL rpl_semi_sync_slave_enabled=on;
启动从节点同步:
> START SLAVE;
确保从节点的线程正常启动:
此时,mysql主从复制的半同步配置完成;可演示验证;
在主节点:
创建新库后并查看相关参数值:
其中Rpl_semi_sync_master_clients:对于当前主节点,有多少个半同步节点;值为1表示有一个半同步节点;
从节点查看:
以上演示的就是半同步复制的配置过程。