Mysql异步复制、同步复制、半同步复制的区别

67次阅读
没有评论

共计 1774 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要介绍“Mysql 异步复制、同步复制、半同步复制的区别”,在日常操作中,相信很多人在 Mysql 异步复制、同步复制、半同步复制的区别问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql 异步复制、同步复制、半同步复制的区别”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

一、异步复制、同步复制、半同步复制的区别

  异步复制:在主从架构中假如当客户端发送了一条 UPDATE 语句,主服务器上 I /O thread 线程将二进制日志写入 binlog 文件之后就返回客户端结果,不管从服务器是否已经同步到从服务器的 relaylog 中,性能是最好的,缺点主服务器宕机,容易造成数据不一致,Mysql 中默认使用的就是异步复制

  同步复制:当主服务器完成更新,并且同步到所有从服务器才会返回成功结果,效率低,影响性能

  半同步复制:将两种方法折中,当主服务器完成更新,至少有一个从服务器接收到并完成更新,主服务器就返回成功

二、具体实现

半同步至少需要 3 台主机,2 台和异步就没有区别了,需要使用 Mysql5.5 以上版本,半同复制是通过插件 Mysql 包中的插件实现的

1、搭建主从复制

主服务器

vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
server-id=57 # 添加唯一  id 
log-bin # 开启二进制日志 
 创建账号
MariaDB [(none)]  grant replication slave on *.* to repluser@ 192.168.12.%  identified by  12345 
查看当前二进制日志位置
show master logs;

从服务器配置方法类似,不重复写了

vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
server-id=27 # 添加唯一  id 
log-bin # 开启二进制日志 

2、半同步复制配置

主服务器

MariaDB [(none)]  show plugins; # 可以查看安装的插件 

安装主节点的插件

MariaDB [(none)] INSTALL PLUGIN rpl_semi_sync_master SONAME  semisync_master.so  # 安装主节点的插件
MariaDB [(none)] SET GLOBAL rpl_semi_sync_master_enabled=1; # 启用
MariaDB [(none)]  SET GLOBAL rpl_semi_sync_master_timeout = 10000; #10000ms 不同步,主服务器直接回应客户端,默认 10000
MariaDB [(none)]  SHOW GLOBAL VARIABLES LIKE  %semi%  # 查看主节点状态 

MariaDB [(none)]  SHOW GLOBAL STATUS LIKE  %semi%  # 查看状态变量 

二台从服务器配置一样

MariaDB [(none)]  INSTALL PLUGIN rpl_semi_sync_slave SONAME  semisync_slave.so  # 安装从节点插件
MariaDB [(none)]  SET GLOBAL rpl_semi_sync_slave_enabled=1; # 启用
MariaDB [(none)]  SHOW GLOBAL VARIABLES LIKE  %semi%  
MariaDB [(none)]  stop slave; # 从节点配置过需要重启线程才生效
MariaDB [(none)]  start slave; # 启动后在主服务器状态变量中可以看到一个从节点 

三、验证

在主服务器上创建数据库, 二个从节点都可以同步

停止其中一个从服务器的 Mariadb 服务。同步不受影响

当二个从服务器服务都关闭,主服务器会等到 rpl_semi_sync_master_timeout 时间到了之后再执行

到此,关于“Mysql 异步复制、同步复制、半同步复制的区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计1774字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)