位置: 编程技术 - 正文

Mysql主从同步的实现原理

编辑:rootadmin

推荐整理分享Mysql主从同步的实现原理,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

1、什么是mysql主从同步?

当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。

2、主从同步有什么好处?

水平扩展数据库的负载能力。 容错,高可用。Failover(失败切换)/High Availability 数据备份。

3、主从同步的原理是什么?

首先我们来了解master-slave的体系结构。

如下图:

不管是delete、update、insert,还是创建函数、存储过程,所有的操作都在master上。当master有操作的时候,slave会快速的接收到这些操作,从而做同步。

但是,这个机制是怎么实现的呢?

在master机器上,主从同步事件会被写到特殊的log文件中(binary-log);在slave机器上,slave读取主从同步事件,并根据读取的事件变化,在slave库上做相应的更改。

如此,就实现了主从同步了!

下面我们来详细的了解。

3.1主从同步事件有哪些

上面说到:

Mysql主从同步的实现原理

在master机器上,主从同步事件会被写到特殊的log文件中(binary-log);

主从同步事件有3种形式:statement、row、mixed。

statement:会将对数据库操作的sql语句写入到binlog中。 row:会将每一条数据的变化写入到binlog中。 mixed:statement与row的混合。Mysql决定什么时候写statement格式的,什么时候写row格式的binlog。

3.2在master机器上的操作

当master上的数据发生改变的时候,该事件(insert、update、delete)变化会按照顺序写入到binlog中。

binlog dump线程

当slave连接到master的时候,master机器会为slave开启binlog dump线程。当master 的 binlog发生变化的时候,binlog dump线程会通知slave,并将相应的binlog内容发送给slave。

3.3在slave机器上的操作

当主从同步开启的时候,slave上会创建2个线程。

I/O线程。该线程连接到master机器,master机器上的binlog dump线程会将binlog的内容发送给该I/O线程。该I/O线程接收到binlog内容后,再将内容写入到本地的relay log。 SQL线程。该线程读取I/O线程写入的relay log。并且根据relay log的内容对slave数据库做相应的操作。

3.4如何在master、slave上查看上述的线程?

使用SHOW PROCESSLIST命令可以查看。

如图,在master机器上查看binlog dump线程。

如图,在slave机器上查看I/O、SQL线程。

4、讲了这么多,一图以蔽之

5、关于实战

关于实战,请参考我的另一篇文章:Mysql主从同步实战

标签: Mysql主从同步的实现原理

本文链接地址:https://www.jiuchutong.com/biancheng/349920.html 转载请保留说明!

上一篇:详解Mysql主从同步配置实战

下一篇:Mac下MySQL初始化密码操作(mysql mac启动)

  • 小规模纳税人能开专票吗2023
  • 天然气管网输送费收费标准
  • 发票抬头开个人可以吗
  • 如何判断会计政策变动
  • 净资产账面价值怎么计算
  • 收回已转销的坏账在借方还是贷方
  • 转让房产的单位和个人都需要缴纳契税吗?
  • 收到货物记账凭证
  • 并购投资的方式有哪些
  • 预收款开票的税务处理
  • 这个月只有进项没有销项
  • 结转劳务费
  • 成本票最多开多少
  • 增值税进项税额是什么意思
  • 事业单位固定资产管理办法
  • 为什么要结转成本差异
  • 空白发票怎么用
  • 债券回购的含义和种类
  • 企业有哪些项目名称
  • 事业单位利息收入计入什么科目
  • u盘中病毒了怎么格式化
  • 代开房租的税点计入什么科目?
  • 新公司成立股份比例
  • php中strrev
  • dell oemdrv
  • 事业单位无职务人员称什么
  • 价值高的备件算固定资产吗
  • 一般股份支付的确认计量及帐务处理怎么做
  • 以土地投资溢价的公司
  • echarts 柱状图滚动与gridlayout移动冲突
  • php写一个简单的单例模式
  • laravel create
  • php编程技术
  • 缴纳以前年度房产税会计分录
  • php多维数组转一维数组
  • 职工报销医药费属于什么会计科目
  • 哈士奇新手礼包
  • 路径规划的基本流程和方法
  • php file函数
  • 增值税普通发票查询真伪
  • 土地出让金抵减增值税账务处理
  • 国际运输代理费属于什么科目
  • 待认证进项税额是二级科目还是三级科目
  • js let与var区别
  • 织梦使用教程
  • vue整合electron
  • 不是公司员工差旅费可以入差旅费吗
  • 商业承兑汇票如何追索
  • 销售包括是销项税金吗
  • 党建经费提取是上年度还是下年
  • 个体户怎么申请电子营业执照
  • 应付职工薪酬的含义
  • 个税适用税率怎么确定
  • 为在建工程发生的差旅费
  • 城建税如何计提税金
  • 实发工资有小数点是如何解决的
  • 费用误计入固定资产
  • 私营企业固定资产法律制度
  • 总结下半年工作计划
  • Windows 2008之AD LDS轻型目录服务解析
  • centos6.6网卡配置
  • 怎么操作win10系统
  • mac 的 safari 浏览器
  • win10的蓝屏界面
  • linux怎么查看挂载点
  • cocos2dx camera
  • es6中的class常见使用场景
  • 以下关于shell脚本参数
  • cocos2dx lua在sublime下的插件安装及查看定义
  • node mongoose
  • 批处理应用实例
  • 安卓api中文手册
  • jquery查找方法
  • Python装饰器入门学习教程(九步学习)
  • js获取
  • 个人所得税完税证明网上打印
  • 某地区土拍的楼盘有哪些
  • 财产租赁包括哪些财产
  • 增值税专用发票和普通发票的区别
  • 耕地占用税是土地增值税扣除项目吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设