MySQL5.7半同步复制环境搭建

参考博客:

http://blog.chinaunix.net/uid-21879027-id-3258210.html

基本环境

master slave

mysql版本 mysql-5.7.14x86_64  mysql-5.7.14x86_64

ip 192.168.0.100 192.168.0.101

port 3306 3306

配置注意事项

master:

INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so‘;

each slave:

INSTALL PLUGIN rpl_semi_sync_master SONAME ‘semisync_master.so‘;

INSTALL PLUGIN rpl_semi_sync_slave SONAME ‘semisync_slave.so‘;

set global rpl_semi_sync_master_enabled=1;

set global rpl_semi_sync_master_timeout=1000;

set global rpl_semi_sync_slave_enabled=1;

利用show plugins;确认模块是否加载进来

my.cnf配置文件

半同步:

master:

[mysqld]

rpl_semi_sync_master_enabled=1;

rpl_semi_sync_master_timeout=1000; ######1 秒

slave

[mysqld]

rpl_semi_sync_slave_enabled=1;

或者全部(master slave)写为:

rpl_semi_sync_master_enabled=1;

rpl_semi_sync_master_timeout=1000; ######1 秒

rpl_semi_sync_slave_enabled=1;

如果原来已经是建好的复制结构:

stop slave io_thread;

start slave io_thread;

监控:

查看主从是否半同步状态

show global status like ‘%semi%‘;

################

set rpl_semi_sync_master_wait_point=after_sync;

时间: 2024-12-19 16:36:27

MySQL5.7半同步复制环境搭建的相关文章

mysql5.5半同步复制

一.实验目的: mysql在主从复制还支持半同步复制,mysql复制是异步的,因为同步性能非常差.主库分发事件以后必须等待从库复制数据结束并收到从库正常响应以后,才能进行下一步操作.异步模式导致从库落后主库时,主库无从得知.因此mysql5.5后引入google补丁半同步复制,2个插件:semisync_master.so与semisync_slave.so.半同步:一主多从架构中,主库只等待一台从库复制完成数据并返回正常响应,就认为同步完成进行下一步操作,这样即有异步的高速,又有同步的安全.一

MySQL5.7 半同步复制

一.概述 5.5与5.7的半同步复制可能存在差异,从MySQL5.5开始,MySQL以插件的形式支持半同步复制 异步:默认情况下,MySQL复制是异步的.主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理.此时若是主若是崩溃了,那提交完成的事务可能并没有传到从上,从而导致数据不一致. 全同步:当主库执行完接受到的事务,会等待所有从机执行此事务的返回值,当收到所有从机的返回值时才会返回给客户端.所以对性能的影响严重. 半同步:介于以上两者之间,主库在执行完客户端

Percona MySQL5.6 半同步复制

先配置普通的clone 两台服务器,一主一备 主服务器: 10.10.1.30 Slave: 10.10.1.200 修改每台机器的my.cnf文件,分别修改server_id 主服务器server_id= 1 ,slave 的server_id=2 重启两台服务器,通过: show variables like 'server_id'; 可以查看到两台服务器的server_id均不一样. 登录Master,输入: grant replication slave on *.* to 'repl'

MySQL5.6 半同步复制,保证数据库一致性

半同步复制需要使用插件,主从节点都需要安装插件.插件安装完之后 ,配置系统变量就可以启用和关闭半同步复制功能. 1.半同步实施前提 数据库版本为 5.5以上 have_dynamic_loading system variable 为 YES. 复制已经正常运行. 2.安装插件 主节点 INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; 从节点  INSTALL PLUGIN rpl_semi_sync_slave S

MySQL5.6半同步复制-非强一致性

接上一篇blog,现在证实5.6的半同步复制. 截图如下. 主库会话一查询数据. 将从库io复制线程停止,主库会话一继续插入数据,由于同步断料,出现等待. 主库开启会话二,查询数据,发现会话一的数据已经插入. 查询主库binlog,发现该事务写入binlog. 总结: 5.6中,写入binlog后,在等待从库返回确认信息之前,事务直接提交到引擎,此时刷新可以看到数据.若此时主库宕机,主从切换后,由于该事物未同步到从库,所以再次刷新发现数据丢失.

MySQL5.7 大大降低了半同步复制-数据丢失的风险

如果你的生产线开启了半同步复制,那么对数据的一致性会要求较高,但在MySQL5.5/5.6里,会存在数据不一致的风险.有这么一个场景,客户端提交了一个事务,master把binlog发送给slave,在发送的期间,网络出现波动,此时Binlog Dump线程发送就会卡住,要等待slave把binlog写到本地的relay-log里,然后给master一个反馈,等待的时间以rpl_semi_sync_master_timeout参数为准,默认为10秒.在这等待的10秒钟里,在其他会话里,查看刚才的

MySQL半同步复制配置

ansible-playbook -f 3 endpoint/mysql.yml -e "exec=fileConfig" -e "db_action=setAll" -e "paras={'plugin-load':'semisync_master.so;semisync_slave.so',rpl_semi_sync_master_enabled:'1',rpl_semi_sync_master_timeout:'1000',rpl_semi_sync

MySQL半同步复制实践

半同步复制 MySQL的主从复制在5.5版本以前只支持异步复制,也就是说主库在执行一些事务后,是不管从库备库的进度的,这种方式最大的好处是速度快.效率高:缺点就是在主库宕机后,不能确保从库和主库的数据一致性. 半同步复制的好处就是,主库在每执行一次事务后,会等待备库接受日志后才返回给客户端,如果做的是小事务,两台主机的延迟较小,则可以实现在损失很小的性能的情况下保证零数据丢失. 原理 1)主库每执行一次事务都会先让备库读取日志,确保至少有一台备库上面的数据和自己完整 2)如果在一个timeout

Mysql半同步复制模式说明 - 运维小结

MySQL主从复制包括异步模式.半同步模式.GTID模式以及多源复制模式,默认是异步模式 (如之前详细介绍的mysql主从复制).所谓异步模式指的是MySQL 主服务器上I/O thread 线程将二进制日志写入binlog文件之后就返回客户端结果,不会考虑二进制日志是否完整传输到从服务器以及是否完整存放到从服务器上的relay日志中,这种模式一旦主服务(器)宕机,数据就可能会发生丢失. 异步模式是一种基于偏移量的主从复制,实现原理是:主库开启binlog功能并授权从库连接主库,从库通过chan