当前位置: 首页 > news >正文

主从切换是怎么保证数据一致的?从库为什么会延迟

前言

主库出问题,一般需要切换从库为主库。那么对于正在同步的数据,如何保证一致性呢?
备库有时候延迟好几个小时的原因有哪些?解决方案是什么?


主从切换是怎么保证数据一致的?从库为什么会延迟

  • 前言
  • 主库出问题了,从库怎么办?
  • 备库为什么会延迟好几个小时?

主库出问题了,从库怎么办?

CTID,就是mysql在写入binlog的时候会生成一个: service-id:10

这样的字符串,前面表示机器的uuid,后面表示在次机器上执行的第几个事务。

单调递增。

从库读取时,只需要根据这个判断是否已经执行过,从库维护了所有执行过的CTID列表。

这样切换主库的时候只需要根据这个判断即可。

备库为什么会延迟好几个小时?

因为主库是并发响应的,从库最开始是单线程同步的。

还有大事物等原因。

mysql已经引入了多线程同步的机制。

一种是通过对于同时进入到commit的事务,是可以并行执行的。msyql的主库会把写入redolog和commit之间的所有事务记录到binlog中。然后在从库中分配到不同的线程work中执行。

第二种是 计算出每一行的hash值,如果两个事务没有相同值,那么就并行执行

第三种是 在第二种的基础上增加了一个约束,即在主库上同一个线程执行的两个事务,在从库也要保证顺序。

http://www.xdnf.cn/news/1326781.html

相关文章:

  • ReLens「Focus DSLR 大光圈虚化相机」v4.1.2 f 解锁付款版 —一款专业大光圈和单反级背景虚化编辑软件
  • 如何将任意文件一键转为PDF?
  • 计算机大数据毕业设计推荐:基于Spark的气候疾病传播可视化分析系统【Hadoop、python、spark】
  • AJAX (一)
  • F003疫情传染病数据可视化vue+flask+mysql
  • JavaSSM框架从入门到精通!第二天(MyBatis(一))!
  • flink+clinkhouse安装部署
  • 当GitHub宕机时,我们如何协作
  • Netty内存池中ChunkList详解
  • 决策树算法学习笔记
  • 设计模式笔记_行为型_解释器模式
  • 技术分享:跨域问题的由来与解决
  • 关于诸多编程语言类型介绍
  • AP6275S AMPAK正基WiFi6模块方案与应用
  • 链表-2.两数相加-力扣(LeetCode)
  • 中科米堆CASAIM自动化三维测量设备测量汽车壳体直径尺寸
  • 丝杆支撑座在自动化生产线中的关键支撑
  • Java -- 用户线程和守护线程--线程同步机制
  • ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video
  • oracle官网下载jdk历史版本,jdk历史版本下载
  • 小程序开发APP
  • 应用控制技术、内容审计技术、AAA服务器技术
  • STL——string的使用(快速入门详细)
  • 可靠性测试:软件稳定性的守护者
  • Flink Stream API - 源码二开详细实现
  • 低延迟、跨平台与可控性:直播SDK的模块化价值解析
  • 基于 PyTorch 模型训练优化、FastAPI 跨域配置与 Vue 响应式交互的手写数字识别
  • 微服务架构的演进:从 Spring Cloud Netflix 到云原生新生态
  • 如何在 uBlock Origin 中忽略指定网站的某一个拦截规则
  • 数字孪生 :提高制造生产力的智能方法