BOB(中国)官方入口-BOB平台在线入口

栏目分类
热点资讯
BOB体育首页
你的位置:BOB(中国)官方入口-BOB平台在线入口 > BOB体育首页 > BOB体育首页 架构师必备:MySQL主从同步原理和行使
BOB体育首页 架构师必备:MySQL主从同步原理和行使

发布日期:2021-10-10 23:00    点击次数:172

 

平时做事中,MySQL数据库是必不走少的存储,其中读写别离基本是标配,而这背后必要MySQL开启主从同步,形成一主一从、或一主众从的架构,掌握主从同步的原理和清新如何实际行使,是一个架构师的必备技能。楼主将在本文做总结BOB体育首页,望这一篇就够了。

1、主从同步原理 主从同步架构图

这是最常见的主从同步架构。

主从同步流程 主库把数据变更写入binlog文件 从库I/O线程发首dump乞求 主库I/O线程推送binlog至从库 从库I/O线程写入本地的relaylog文件 从库SQL线程读取relaylog并重新串走实走一遍,得到与主库相通的数据 什么是binlog?

主库每挑交一次事务,都会把数据变更BOB体育首页,记录到一个二进制文件中,这个二进制文件就叫binlog。需仔细:只有写操作才会记录至binlog,只读操作是不会的。

binlog的3栽格式: statement格式:binlog记录的是实际实走的sql语句 row格式:binlog记录的是转折前后的数据,形如updatetable_asetcol1=value1,col2=value2...wherecol1=condition1andcol2=condition2... mixed格式:默认选择statement格式,只在必要时改用row格式 binlog格式对比 statement级别:益处是binlog文件幼,弱点是主库的慢sql也会在从库上再展现一次,一些倚赖环境或上下文的函数能够会产生纷歧致的数据 row级别:弱点是文件大,益处是无上述慢sql题目,不倚赖环境或上下文 为了获取前后转折数据,canal提出行使row级别 主从同步的2栽手段 异步同步:默认手段,能够会导致主从切换时数据丢失。由于主库是否commit与主从同步流程无关,也不感知。 半同步:高可用方案,BOB体育首页较新mysql版本声援必要起码1个从库对写入relaylog进走ack主库才会commit并把效果返回client。 主从同步流程 从库在连接主库时外明本身声援半同步复制 主库也需声援半同步复制主库commit事务前会壅塞期待起码一个从库写入relaylog的ack直至超时 倘若壅塞期待超时则主库一时切换回异步同步模式当起码一个从库的半同步追上进度时主库再切换至半同步模式 半同步适用场景

高可用备份:半同步复制可确保从库与主库的相反性当主库发生故障时切换到从库不会丢失数据。为了保证安详性清淡不承担营业流量、尽能够快地ack只用于同步备份。

2、主从同步行使场景 清淡场景:线上从库异步同步高可用备份半同步

对相反性请求较高的大数据取数需求

大数据取数能够导致从库cpu行使率飙升、ack变慢可竖立半同步所需ack数目为1平常情况下高可用备份能很快ack所以主库会commit并返回而大数据取数复制慢一些也无所谓。云云就不会由于大数据取数ack慢而影响主库和营业了。

参考:mysql官方文档

https://dev.mysql.com/doc/refman/5.7/en/replication-semisync.html https://dev.mysql.com/doc/internals/en/binary-log-overview.html

MySQL管理与双主集群实战分页场景慢?MySQL的锅!摊牌了行为开发者BOB体育首页吾频繁用这14个Github偷偷学习

BOB电竞平台 BOB体育首页 BOB综合体育在线