MySQL 主从复制与读写分离

目录

一、MySQL主从复制

1、概述

2、mysql支持的复制类型

3、MySQL主从复制的工作过程

4、主从复制实际操作

主服务器:

①关闭防护墙和安全机制

②设置时间同步

③修改配置文件参数

④给从服务器授权

从服务器:

①关闭防护墙和安全机制

②设置时间同步

③修改配置文件参数

④进入数据库做主从配置

测试:

5、配置MySQL主从复制可能遇到的常见问题(注意点)

6、MySQL主从复制延迟

7、MySQL主从复制数据不一致

8、MySQL主从复制的同步模式

二、读写分离

1、MySQL读写分离的方式有哪些


一、MySQL主从复制

1、概述

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

2、mysql支持的复制类型

(1)STATEMENT:基于语句的复制。在服务器上执行sql语句,在从服务器上执行同样的语句,mysql在5.7版本之前默认采用基于语句的复制,特点是执行效率高,在高并发情况下可能会无法精确复制。

(2)ROW:基于的复制。在5.7版本之后默认使用基于行的复制,把改变的内容复制过去,而不是把命令在从服务器上执行一遍。特点是非常精确,保存的数据量可能会变大,效率变慢。

(3)MIXED:混合类型的复制。默认采用基于语句的复制,一旦发现在高并发情况下基于语句无法精确复制时,就会采用基于行的复制。

3、MySQL主从复制的工作过程

①首先需要主服务器开启二进制日志,备服务器开启中继日志

②主服务器的数据更新时,会将其改变写入二进制日志中

③如果主服务器的二进制日志发生改变,备服务器会开启io线程向主服务器请求二进制日志事件/记录

④主服务器为每个io线程开启一个dump线程,用于向从服务器发送二进制事件

⑤从服务器保存二进制日志到中继日志中,并开启SQL线程读取中继日志中的二进制事件并解析成sql语句进行重放/逐一执行,使得数据和主服务器保持一致

注:

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

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

4、主从复制实际操作

主服务器:

①关闭防护墙和安全机制
②设置时间同步

使用主服务器做边缘服务器

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值