• 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. 实现简单的高可用架构

    主-主复制架构

    在这里插入图片描述

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

    配置测试

    在这里插入图片描述

    主-主架构的问题

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

  • 相关阅读:
    HC32单片机的TIMERA输出波形极性不对的问题
    阿里云服务器端口号设置
    NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读
    数千年中东文明史的五个阶段
    Vim操作的常用命令记录
    aop-动态代理,cglib动态代理,面向切面编程,aop的实现方法
    Explain关键字的使用与索引优化
    C++ opencv 图像读取与显示
    自动化测试Selenium(3)
    深入探索Sharding JDBC:分库分表的利器
  • 原文地址:https://blog.csdn.net/xingzhes_/article/details/126781533