打造扛得住的数据库架构读书笔记(五)

MySQL的复制解决了什么问题?
实现了不同服务器上的数据分布,利用二进制日志增量进行。
实现数据读取负载均衡。
增加了数据的安全性。
实现了数据库高可用和故障切换。
实现数据库在线升级。

MySQL的日志主要分为两大类,MySQL服务层日志,MySQL存储引擎层日志。
在这里插入图片描述
二进制日志:
记录了所有对MySQL数据库修改事件,包括增删改查事件和对表结构的修改事件(成功执行的)。
二进制的日志格式:
1)基于段的修改:存储sql语句。
优点:日志记录量相对较小,节约磁盘及网络I/O。
缺点:记录上下文信息,有些函数比如UUID和user无法被记录。有可能会造成主从不一致。
2)基于行的日志格式默认:存储具体的数据的修改。
优点:可以避免MySQL出现主从不一致的情况。比基于段的修改效率高。
缺点:日志记录量比较大。
3)混合日志格式,基于段和基于行的日志格式的混合。
特点:根据SQL语句选择根据段还是根据行来选择。数据量大小由所执行的SQL语句决定。

根据主服务器选择的二进制文件的格式的不同,复制可以分为:
基于SQL语句的复制(SBR)和基于行的复制建议(RBR)。混合日志格式会在两者之间进行切换。

MySQL复制的工作方式
在这里插入图片描述
1.主将变更写入二进制日志。
2.从服务器从指定位置读取二进制日志并写入relay_log 中,从服务器需要启动IO线程,
主服务器启动转储存线程binlog_dump。
3.从服务器重放relay_log中的日志。

数据库备份工具: mysqldump,xtrabackup。

MySQL的主从复制拓扑结构非常灵活。5.7后还支持一从多主的结构。
一主多从
在这里插入图片描述
优点:配置简单,可以用多个从库来分担主库的负载。

主主复制拓扑
在这里插入图片描述
这种模式不建议两个都对外提供服务。(两个地区相同的数据)
一台提供服务,另一台提供热备份。

级联复制
在这里插入图片描述

MySQL复制性能优化
复制时异步的,影响主从延迟的因素有:
1.主库写入二进制日志的时间(事务执行的时间)。—》解决办法,控制主库事务的大小,分割大事务。
2.二进制日志的传输和写入从日志的时间。----》解决办法,使用混合MIXED格式,大部分会使用段格式。
3.主上的并发修改在从上变成了串行。—》多线程复制

MySQL复制常见问题
由于数据损坏或者丢失引起的主从复制错误。 多由于强制关机等操作造成。
1)主库或者从库意外宕机引起的错误
2)主库上的二进制日志文件损坏。
3)从库上的中继日志损坏。

在从库上进行数据修改造成的主从复制错误

不唯一的server_id 或 server_uuid。

max_allow_packet 主从设置不一致也会造成主从复制错误。

无法解决的问题:
主从复制无法分担数据库的写负载
无法进行故障转移以及主从切换。
并没有提供读写分离的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值