MySQL学习笔记-7. 搭建“三高”架构的基础

@TOC

1. 三高简介

1.1 什么是三高

在这里插入图片描述

1.2 实现三高的手段

1. 复制

在这里插入图片描述

2. 扩展

在这里插入图片描述

  • 如果一个扩展的数据库挂了,会有数据不完整的风险
3. 切换

在这里插入图片描述

  • 为了解决扩展的问题,当一个数据库不可用,能够切换到从数据库(备份数据库),但有丢失切换时期的数据风险

1.3 三高实现

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

2. 三高实现1-复制

在这里插入图片描述

2.1 复制的基本原理

在这里插入图片描述

  • binlog传送,先保存到relay log, 然后,进行重放,重新生成binlog,这样,下次可以继续同步slave

2.2 复制的类型

在这里插入图片描述

1. 异步复制

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

2. 半同步复制

在这里插入图片描述

  • 客户端需要接收到ACK通知,即确定从库同步到relay log,就可以提交了,剩下的交给从库异步做
  • 即,只关心日志同步过来没有,但执行结果如何不做强要求
    在这里插入图片描述
  • 有一定等待时间,如果一直没有同步到从库,超过一定时间,会脱库,主库不再阻塞,继续执行提交,切换成异步复制状态,保证主库的可用性
3. 组复制

在这里插入图片描述

  • 保证强一致性
  • 从库也可以执行事务,地位同步
    在这里插入图片描述

3. binlog格式

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

4. 备库延迟问题

在这里插入图片描述

4.1 延迟的原因和解决办法

在这里插入图片描述

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

4.2 并行复制的策略

在这里插入图片描述
在这里插入图片描述
难点是如何分配中继日志,比如前一条是插入数据,后一条是修改这条数据,这样,不能同时并发执行
在这里插入图片描述

1.按库分发

在这里插入图片描述

2.按照事务组并行分发
事务组概念
  • binlog刷盘步骤
    在这里插入图片描述
  • 事务组概念
    在这里插入图片描述
    优化:
    在这里插入图片描述
  • 因为,1,2,3三个事务操作的是同一个binlog文件,第一步都是刷到内存中,最终只有一个事务将最终内存中的日志保存到磁盘中,这三个事务属于一个事务组
参数设置

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

4.3. 备库如何读到最新数据

在这里插入图片描述

1 强制走主库
  • 一种思路是,如果想读到实时最新的数据,查询主库的数据一定是最新的
2 如何判断备库已经追上

在这里插入图片描述

  • GTID:事务的id,在从库上查询是否中继日志重放好了

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

5. 实现简单的高可用架构

主-主复制架构

在这里插入图片描述

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

配置测试

在这里插入图片描述

主-主架构的问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值