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. Http 概述

    Http是可靠的数据传输协议.   资源 Web服务器是Web资源(resource)的宿主.包括静态文件以及动态的内容.   媒体类型 Http对每种需要由web传输的对象都打上了名为MIME类型的 ...

  2. [PHP] 算法-把数组排成最小的数的PHP实现

    输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 解法1 1.数组排序, ...

  3. [android] 安卓消息推送的几种实现方式

    消息推送的目的:让服务器端及时的通知客户端 实现方案 轮询:客户端每隔一定的时间向服务器端发起请求,获得最新的消息 特点:如果用在最新新闻通知上,效率就有点低了,技术简单,好实现 应用场景:服务器端以 ...

  4. Ubuntu下JDK1.8安装后配置环境变量

    export JAVA_HOME=/dengyang/jdk1.8.0_56export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/li ...

  5. Java学习笔记之——类与对象

    1.参数的传递方式 1)值传递 2)引用传递 2.类和对象: (1)类的定义: public class 类名{ 类型 属性1: 类型 属性2: ……… public 返回值类型 方法名1(形参){ ...

  6. Spring全家桶系列–SpringBoot之AOP详解

    //本文作者:cuifuan //本文将收录到菜单栏:<Spring全家桶>专栏中 面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP). OOP中模块化的关 ...

  7. JavaScript 频繁发射事件处理的优化 --- 函数节流/事件稀释

    引子:昨天面试时面试官问了如何实现一个固定导航栏,在我答完后面试官问我可能存在哪些问题,如何优化? 这个问题我答得不太好,但现在回想起来应该有两个问题: 1. 把 fixbar元素 position: ...

  8. 在 Ubuntu 18.04 下安装 fcitx 及搜狗拼音输入法

    感觉自己傻逼透了,之前在 16.04 时折腾着要装 ibus 和 rime 输入法,现在 18.04 默认安装 ibus 了,又因为 rime 的智能联想太弱,打字不爽,又想装回搜狗一劳永逸... 环 ...

  9. Salesforce服务云简介

    服务云简介 Salesforce的服务云(Service Cloud)是专注于客服和呼叫中心解决方案的子系统.它是Salesforce核心CRM系统的一部分. 服务云特性 服务云提供了客户服务和呼叫中 ...

  10. axure工具的使用总结

    ---恢复内容开始--- Axure工具的使用 axure是什么? Axure RP是一款快速原型设计工具,它不需要任何编程或写代码基础,就可以设计出交互效果良好的产品原型,常用于互联网产品设计.网页 ...