MySQL主从复制 读写分离

读写分离概述
读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。

主从复制与读写分离
在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。有点类似于rsync,但是不同的是rsync是对磁盘文件做备份,而mysq1主从复制是对数据库中的数据、语句做备份。

mysql支持的复制类型
STATEMENT:基于语句的复制。在服务器上执行sq1语句,在从服务器上执行同样的语句,mysq1默认采用基于语句的复制,执行效率高。

ROW:基于行的复制。把改变的内容复制过去,而不是把命令在从服务器上执行一遍。

MIXED:混合类型的复制。默认采用基于语句的复制,一旦发现基于语句无法精确复制时,就会采用基于行的复制。

主从复制的工作过程
在这里插入图片描述
首先主节点开启二进制日志,从节点开启中继日志。
当客户端对mysql数据库进行增删改查时,则将其改变写入二进制日志中
从节点会在一定时间间隔内对主节点的二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/o线程请求主节点的二进制事件。
同时主节点为每个I/o线程启动一个dump线程,用于向其发送二进制事件,从节点会将其保存至s从节点本地的中继日志(Relaylog)中
最后从节点将启动sQL线程从中继日志中读取二进制日志,在本地重放,即解析成sql语句逐一执行,使得其数据和主节点的数据同步,最后I/o线程和sQL线程将进入睡眠状态,等待下一次被唤醒。

搭建Mysql主从复制
一主两从结构图
在这里插入图片描述

master 服务器:192.168.239.20 Mysql5.7
slave1 服务器: 192.168.239.30 Mysql5.7
slave2 服务器: 192.168.239.60 Mysql5.7

初始环境

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

Mysql主从服务器时间同步
主服务器设置

master 服务器:192.168.239.20

yum install ntp -y #安装ntp服务用来完成时间同步
vim /etc/ntp.conf #修改配置文件
#末行添加以下两行
server 127.127.239.0 #设置本地为时钟源,注意修改网段
fudge 127.127.239.0 stratum 8 #设置时间层级为8
service ntpd start #重启服务

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值