MySQL(十)主从复制与读写分离

目录

一、主从复制

1、原理

2、mysql支持的复制类型

3、主从复制的工作过程

4、MySQL主从复制延迟

二、MySQL 主从复制架构搭建

1、前期准备

2、文件配置

3、验证主从复制

三、读写分离介绍

1、基本概念

2、实现方式

四、MySQL 读写分离架构搭建

1、前期准备

2、配置 amoeba 读写分离,之前两个 slave做读负载均衡

3、客户端测试读写分离

4、关闭 slave 功能后在主从服务器插入数据

5、关闭 slave 功能后,客户端服务器写入数据

6、从服务器开启 slave 服务

7、客户端服务器再次插入数据

总结


一、主从复制

        MySQL 的主从复制和 MySQL 的读写分离两者有着紧密联系,首先要部署主从复制,只有主

从复制完成了,才能在此基础上进行数据的读写分离。

1、原理

主从复制的核心:2个日志、3个线程

master 线程:bin log 二进制日志、dump 线程

master 上的 dump 线程会监控 bin log 二进制日志的更新,若有更新会通知 slave的 I/O 线程

slave:relay log 中继日志、I/O 线程、SQL 线程

线程1:

slave上的 I/O 线程会向 master 申请同步 bin log 二进制日志的更新内容,slave的 I/O 线程把更新

内容写入自己的中继日志

线程2:

slave 的 SQL 线程把日志中的更新语句同步执行到内容,以达到和 master 数据库趋于一致

2、mysql支持的复制类型

        基于语句的复制:在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句;MySQL

默认采用基于语句的复制,效率比较高。

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

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

基于行的复制。

3、主从复制的工作过程

(1)Master节点将数据的改变记录成二进制日志(bin log),当Master上的数据发生改变时,则

将其改变写入二进制日志中。

(2)Slave节点会在一定时间间隔内对Master的二进制日志进行探测其是否发生改变,如果发生改

变,则开始一个I/O线程请求 Master的二进制事件。

(3)同时Master节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至

Slave节点本地的中继日志(Relay log)中,Slave节点将启动SQL线程从中继日志中读取二进制

日志,在本地重放,即解析成 sql 语句逐一执行,使得其数据和 Master节点的保持一致,最后I/O

线程和SQL线程将进入睡眠状态,等待下一次被唤醒。

注:

●中继日志通常会位于 OS 缓存中,所以中继日志的开销很小。

●复制过程②有一个很重要的限制,即复制在 Slave上是串行化的,也就是说 Master上的并行更新

操作不能在 Slave上并行操作。

4、MySQL主从复制延迟

①、master服务器高并发,形成大量事务

②、网络延迟

③、主从硬件设备导致:cpu主频、内存io、硬盘io

④、本来就不是同步复制、而是异步复制

        从库优化Mysql参数。比如增大innodb_buffer_pool_size,让更多操作在Mysql内存中完成,

减少磁盘操作。

        从库使用高性能主机。包括cpu强悍、内存加大。避免使用虚拟云主机,使用物理主机,这样

提升了i/o方面性。

从库使用SSD磁盘

网络优化,避免跨机房实现同步

二、MySQL 主从复制架构搭建

1、前期准备

①、确认各主机名及IP地址,以下均在CentOS 7环境下配置。

主机名

IP地址

主要软件

Master(主)

192.168.110.128

mysql-5.7

Slave1(从)

192.168.110.129

mysql-5.7

Slave2(从)

192.168.110.130

mysql-5.7

Amoeba(中继)

192.168.110.131

jdk1.6、Amoeba

client(客户端)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值