mysql主从复制用途

实时灾备,用于故障切换
读写分离,提供查询服务
备份,避免影响业务

主从部署必要条件

主库开启binlo日志(设置log-bin参数)
主从server-id不同
从库可以连同主库 

主从复制原理图

从库的io线程

去请求主库的bin-log二进制,并将得到的binlog日志写到relay log(中继日志中)

主库的dump线程

用来给从库的I/O线程传送binlog二进制日志;

从库的SQL线程 

会读取从库中得relay-log文件的日志,并且解析成具体的操作进行持久化,实现主从同步

该架构存在的问题

主库宕机可能存在数据的丢失;当然从库也可能宕机,我们可以部署双从;
从库只有一个SQL线程,当用户操作过多时。
主库生成大量的bin--log二进制日志,从库可能帮不过来

我们使用的是MHA软件

MHA可以运行在每台mysql服务器上,当MHA检测到master出现故障时,
会将记录到最新数据的slave提升为新的master。
并将其他所有的slave重新指向新的master。
整个故障转移对程序来说是完全透明的

MHA缺点

在MHA自动切换故障的过程中,MHA试图向宕机的主服务器上记录二进制日志。
最大程度的保证数据不丢失,但这并不总是可行的。
例如,如果主服务器硬件故障或无法通过ssh访问。
MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。  

半同步复制

mysql半同步复制可以大大降低数据丢失的,MHA可以与半同步复制结合起来。
如果一台slave服务器接收到了最新的二进制日志。
HMA可以将最新的二进制日志同步给其他的slave。
因此可以保证所有节点数据的一致性

MHA工作原理总结为以下几条

•从宕机的master服务器上保存二进制事件
•识别含有最新数据的slave
•提升一个slave为新的master
•将其他的slave连接到新的maser进行复制

  

  

MySQL主从同步原理的更多相关文章

  1. MySQL主从同步原理 部署【转】

    一.主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力二.MySQL主从备份原理master 上提供binlog ,slave 通过 I/O线程从 master拿取 bin ...

  2. mysql 主从 同步原理及配置

    一.在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来 ...

  3. mysql主从同步原理及错误解决

    mysql主从同步的原理: 1.在master上开启bin-log日志功能,记录更新.插入.删除的语句. 2.必须开启三个线程,主上开启io线程,从上开启io线程和sql线程. 3.从上io线程去连接 ...

  4. Mysql 主从同步原理简析

    在开始讲述原理的情况下,我们先来做个知识汇总,究竟什么是主从,为什么要搞主从,可以怎么实现主从,mysql主从同步的原理1.什么是主从其实主从这个概念非常简单主机就是我们平常主要用来读写的服务,我们称 ...

  5. 架构师必备:MySQL主从同步原理和应用

    日常工作中,MySQL数据库是必不可少的存储,其中读写分离基本是标配,而这背后需要MySQL开启主从同步,形成一主一从.或一主多从的架构,掌握主从同步的原理和知道如何实际应用,是一个架构师的必备技能. ...

  6. 高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏

    1. MySQL主从同步实现方式 MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句. Bin Log共有三种日志格式,可以binlog_format配置参数指定. ...

  7. MySQL主从同步-原理&实践篇

    来源:Onegoleya 简栈文化 什么是mysql的主从复制? MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式,这样从节点 ...

  8. Mysql主从同步原理简介

    1.定义:当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 2.好处: 1)水平扩展数据库的负载能力. 2)容错,高可用.Failover(失败切换)/High Av ...

  9. mysql 主从同步原理

    Replication 线程 Mysql的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们 ...

随机推荐

  1. ios -- 成员变量、实例变量与属性的区别

      最近打开手机就会被胡歌主演的<猎场>刷屏,这剧我也一直在追,剧中的郑秋冬,因为传销入狱五年,却在狱中拜得名师孙漂亮(孙红雷),苦学HR,并学习了心理学,成功收获两样法宝.出狱后因为怕受 ...

  2. 【github&&git】2、github入门到上传本地项目

    [在原文章的基础上,修改了描述的不够详细的地方,对内容进行了扩充,整合了网上的一些资料] [内容主要来自http://www.cnblogs.com/specter45/p/github.html#g ...

  3. 设计模式-享元模式(FlyWeight)

    一.概念 享元模式是对象的结构模式,它以共享的方式高效的支持大量的细粒度对象,减少对象的数量,并达到节约内存的目的. 享元对象能够做到共享的关键,主要是区分了内部状态和外部状态,内部状态是对象是在建立 ...

  4. linq使用Take和Skip实现分页

    ;//第1页 ;//页大小 var list = list.Skip((pageIndex-1) * pageSize).Take(pageSize).ToList();

  5. Python全栈学习_day011作业

    1,写函数,传入n个数,返回字典{‘max’:最大值,’min’:最小值}例如:min_max(2,5,7,8,4) 返回:{‘max’:8,’min’:2}(此题用到max(),min()内置函数) ...

  6. Python全栈学习_day002知识点

    今日大纲: . while循环 . 格式化输出 . 运算符 . 编码初识 1. while循环 - while 无限循环: while True: # 死循环 print('大悲咒') print(' ...

  7. vue选中与取消简单实现

    <li v-for="(item,index) in assign" :key="index" @click="selected(item)&q ...

  8. CloudSim源代码学习——任务单元(Cloudlet)

    /* * Title: CloudSim Toolkit * Description: CloudSim (Cloud Simulation) Toolkit for Modeling and Sim ...

  9. web应用

    实现HttpServlet的Web应用 <dependency> <groupId>javax.servlet</groupId> <artifactId&g ...

  10. Python tab键命令补全

    pip install pyreadline import rlcompleter, readline readline.parse_and_bind('tab: complete') root@pe ...