匿名
未登录
登录
Linux78|wiki
搜索
查看“MySQL半同步复制配置”的源代码
来自Linux78|wiki
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
MySQL半同步复制配置
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
wiki:用户|用户
您可以查看与复制此页面的源代码。
从MySQL5.5开始,MySQL以插件的形式支持半同步复制,看看与异步复制的区别是什么 异步复制(Asynchronous replication) MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。 半同步复制(Semisynchronous replication) 主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。对于一主多从的MySQL架构建议使用半同步复制。 MySQL半同步复制配置方法: 1、安装半同步复制插件 主节点: mysql > INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; 从节点(只选择一台从节点做配置): mysql > INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; 2、检查插件是否安装成功 1 SHOW PLUGINS; 3、启动主从节点的半同步复制功能 SET GLOBAL rpl_semi_sync_master_enabled=1; #主节点做该操作 SET GLOBAL rpl_semi_sync_slave_enabled=1; #从节点做该操作 上面的操作是临时生效,可以写my.cnf配置文件中永久有效 主节点 plugin-load=rpl_semi_sync_master=semisync_master.so rpl_semi_sync_master_enabled=1 从节点 plugin-load=rpl_semi_sync_slave=semisync_slave.so rpl_semi_sync_slave_enabled=1 4、重新启动从节点复制线程。如果没有重启,则默认还是异步复制。重启后Slave会在Master上注册为半同步复制的Slave角色。 START SLAVE; 5、当半同步复制发生超时时(由rpl_semi_sync_master_timeout参数控制,单位是毫秒,默认为10000,即10秒),会暂时关闭半同步复制转而使用异步。当master dump线程发送完一个事务的所有事件之后,如果在rpl_semi_sync_master_timeout内,收到了从库的响应,则主从又重新恢复为半同步复制。示例:如果从节点Down掉,那么在主节点插入一条语句,这个时候会等待10秒才会插入成功,与rpl_semi_sync_master_timeout参数的时间相吻合。等从节点恢复后,主节点再次插入数据,又会恢复正常。 6、查看半同步复制插件所生成的环境变量与状态变量,状态变量一般用于统计数据。 show global variables like '%semi%'; #半同步复制相关的环境变量 show status like '%semi%'; #半同步复制相关的状态变量
返回至
MySQL半同步复制配置
。
导航
导航
首页
最近更改
随机页面
栏目
Nginx
Kubernetes
Spring Cloud
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志