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

主从复制原理

整理自深入浅出mysql:https://download.csdn.net/download/qq_16399991/10660150

https://blog.csdn.net/qq_16399991/article/details/82749333

概述

mysql从3.23版本开始提供复制功能,复制是将主库的DDL和DML操作通过二进制日志传递到复制服务器(从库)上,然后从库对这些日志重新执行(重做),从而使得主库和从库保持数据一致。

mysql复制的优点

  • 如果主库出现问题,可以快速切换到从库提供服务
  • 可以在从库执行查询操作,降低主库的访问压力。
  • 可以在从库进行备份,以免备份期间影响主库的服务。

注意:由于mysql实现的异步复制,所以主库和从库数据之间存在一定的差异,在从库执行查询操作需要考虑这些数据的差异,一般只有更新不频繁和对实时性要求不高的数据可以通过从库插叙,实行要求高的仍要从主库查询。

复制原理

mysql的复制原理大致如下。

(1)首先,mysql主库在事务提交时会把数据库变更作为事件Events记录在二进制文件binlog中;mysql主库上的sys_binlog控制binlog日志刷新到磁盘。

(2)主库推送二进制文件binlog中的事件到从库的中继日志relay log,之后从库根据中继日志重做数据库变更操作。通过逻辑复制,以此来达到数据一致。

Mysql通过3个线程来完成主从库之间的数据复制:其中BinLog Dump线程跑在主库上,I/O线程和SQl线程跑在从库上。当从库启动复制(start slave)时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程读取数据库事件并发给I/O线程,I/O线程获取到数据库事件更新到从库的中继日志Realy log中去,之后从库上的SQl线程读取中继日志relay log 中更新的数据库事件并应用。

相关文章:

  • 绘制图片和文字
  • mysql日志中redo和undo日志概念以及应用
  • configure/make/make install的作用
  • MySQL索引
  • HDU 5019 Revenge of GCD(数学)
  • [<事务专题>]
  • Nginx总算支持动态模块了
  • 【MySQL中的锁】
  • Linux在线安装git(亲测成功)
  • [<MySQL优化总结>]
  • yum update
  • Redis是什么?
  • C语言中函数返回值的问题
  • 哈夫曼树
  • Redis有哪五种不同类型的值?应用场景有哪些?
  • angular组件开发
  • Facebook AccountKit 接入的坑点
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • leetcode98. Validate Binary Search Tree
  • mysql中InnoDB引擎中页的概念
  • Netty源码解析1-Buffer
  • passportjs 源码分析
  • PHP的Ev教程三(Periodic watcher)
  • Selenium实战教程系列(二)---元素定位
  • 复杂数据处理
  • 工作手记之html2canvas使用概述
  • 跳前端坑前,先看看这个!!
  • 怎么把视频里的音乐提取出来
  • PostgreSQL之连接数修改
  • 如何用纯 CSS 创作一个货车 loader
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​什么是bug?bug的源头在哪里?
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #Linux(权限管理)
  • #QT项目实战(天气预报)
  • ${ }的特别功能
  • (JS基础)String 类型
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (三)mysql_MYSQL(三)
  • (十六)串口UART
  • (顺序)容器的好伴侣 --- 容器适配器
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)关于多人操作数据的处理策略
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .net CHARTING图表控件下载地址
  • .NET delegate 委托 、 Event 事件
  • .NET MVC之AOP
  • .NET 常见的偏门问题
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)