Mysql数据库主从复制学习笔记


title: Mysql数据库主从复制学习笔记
date: 2018-11-02 15:26:15
tags:

  • Mysql
  • 主从复制
  • 学习笔记

Mysql数据库主从复制学习笔记

概述

  • 主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器中。
  • Mysql主从复制的基础是主服务器对数据库修改记录二进制日志,从服务器通过主服务器的二进制日志自动执行更新。
  • Mysql使用主从复制,可以作为一种热备份,还可以用来做读写分离,均衡数据库负载。
  • Mysql主从复制解决了数据分布、负载均衡、备份、高可用性和容错性的问题。
  • Mysql主从服务器最多不超过9台,推荐不超过5台。

主从复制的类型

基于语句复制

  • 主服务器上执行的语句从服务器再执行一遍,Mysql默认使用基于语句的复制。
  • 存在问题:在时间上可能不能完全同步造成偏差,执行语句的用户也可能不是同一个用户。

基于行复制

  • 把主服务器中修改的内容直接复制到从服务器中,不关心到底修改的内容是由哪条语句引发的。
  • 存在问题:如果修改了数据表中每行的内容,那么需要复制数据表中所有的内容到从服务器中,造成比较大的开销。

混合类型的复制

  • Mysql默认使用基于语句的复制,当基于语句的复制会引发问题是,就使用基于行的复制,Mysql会自动进行选择。
  • 在主从复制架构中,读操作可以在所有的服务器中执行,而写操作只能在主服务器中执行。主从复制架构虽然对读操作提供了扩展,但是,如果写操作比较多,单主模型的复制中主服务器势必会成为性能瓶颈。

主从复制工作原理

  1. 主服务器Master将改变记录到二进制日志Binary log中;
  2. 从服务器Slave将主服务Master的二进制日志事件复制到它的中继日志Relay log中;
  3. 从服务器Slave重做中继日志中的事件,将改变反应到自己的数据库中;
  • 一主多从的复制模式中,主服务器既要负责数据的写入,又要负责为从服务器提供二进制日志,那么主服务器将面临更多的负担。
    Mysql主从复制-从分发日志
  • 在一主多从的复制模式中,可以将主服务器中的二进制日志复制到某一个从服务器中,该从服务器再开启二进制日志事件,并将自己的二进制日志发送给其他从服务器或者该从无服务器不开启二进制日志事件,只负责把二进制日志转发给其他从服务器,这样的架构性能更好,而且数据之间的延时也更好。

主从复制的过程

  • Mysql主从复制有:同步复制、异步复制、半同步复制。3
  • 异步复制:事物首先从主节点上提交,然后复制给从节点,并在从节点上应用。这就代表着在同一个时间点主从服务器上的数据可能不一致,异步复制的好处是比同步复制要快,如果对数据的一致性要求很高,最好采用同步复制。
  • 半同步复制:半同步复制在多个Slave节点中选取一个节点进行半同步复制。也就是说,当主服务器提交一个事物时,在这个这个半同步复制的Slave端返回一个同步完成的Ack包之后,主服务器才会向用户返回事务提交成功,其他的Slave则采用传统的异步方式进行同步。4
    • 半同步复制基于异步复制模式的,在配置半同步模式之前需要先配置异步复制。
    • 半同步复制可以保证在主节点发生故障的时候,至少有一个从服务器与主服务器的数据一样,这样在进行切换时,可以更加快速的将该Slave设置成Master来使用。

二进制日志的模式5

  • 二进制日志Binlog有3种模式:row、statement、mixed;

row模式

  • 日志中会记录成每一行数据被修改的格式,然后在slave端再对相同的数据进行修改,只记录要修改的数据,只有value,不会有sql多表关联的情况;
  • row模式的日志清楚的记录下每行数据修改的细节,比较容易理解,不会出现某些情况下的存储过程、trigger的调用和触发无法被正确复制的问题。但是在该模式下,所有执行过的语句都被记录到日志中,日志将根据每行的修改来记录,这样就会产生大量的日志内容;

statement模式

  • 每一条会修改数据的sql语句都会记录到二进制日志文件中,在Slave复制的时候sql进程会解析成和Master端相同的sql语句再执行。在这种模式下,解决了row模式的缺点,不需要记录每行数据的变化,减少了日志量,节省了I/O、存储资源,提高了性能。但是,在这种模式下,为了让Slave端执行相同的sql语句得到与Master端相同的结果,二进制日志文件必须要记录执行语句的上下文信息,这就对mysql的复制造成了不小的吊炸你,自然复制的时候涉及到越复杂的内容,bug就越容易出现;

mixed模式

  • mixed模式是row和statement模式的混合模式,在mixed模式下,mysql会根据执行的每一条具体的sql语句来区分对待二进制日志文件的记录形式,它会在row和statement模式之间自动选择。启用该日志模式,需要在配置文件中添加binlog_format=mixed

Tips

  1. Mysql如果要使用主从复制,主服务器需要开启Binlog二进制日志事件功能,从服务器需要开启Relay-log日志中继功能;
  2. 二进制日志只记录主服务器内容更改的语句,对查询语句不做记录;
  3. 主服务器需要建立从服务器账号;
  4. 从服务器要配置master.info ;
  5. 主从复制时,主服务器有一个I/O线程,从服务器有一个I/O,一个SQL线程;

参考

  1. https://segmentfault.com/a/1190000008942618
  2. https://blog.csdn.net/hguisu/article/details/7325124
  3. http://blog.51cto.com/junwang/1424711
  4. https://www.jianshu.com/p/d877cbe9f0f0
  5. https://blog.csdn.net/keda8997110/article/details/50895171
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容