MySQL Replication 是 MySQL 非常有特色的一个功能,他能够将一个 MySQL Server 的 Instance 中的数据完整的复制到另外一个 MySQL Server 的 Instance 中。虽然复制过程并不是实时而是异步进行的,但是由于其高效的性能设计,延时非常之少。

  Mysql 的 Replication 是一个异步的复制过程,从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave)。在 Master 与 Slave 之间的 实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端 , 另外一个线程(IO 线程)在Master 端。

  必须打开 Master 端的 Binary Log(mysqlbin.xxxxxx)功能,打开方式有两种,分别是:

  1.通过在启动 MySQL Server 的过程中使用“—log-bin” 参数选项;

  2.在 my.cnf 配置文件中的 mysqld 参数组([mysqld]标识后的参数部分)增加 “log-bin” 参数;

MySQL 复制的基本过程如下:

1. Slave 上面的 IO 线程连接上 Master,并请求从指定日志文件的指定位置(或者从 最开始的日志)之后的日志内容;

2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责复制的 IO 线程根据请 求信息读取指定日志指定位置之后的日志信息,返回给 Slave 端的 IO 线程。返回信 息中除

了日志所包含的信息之外,还包括本次返回的信息在 Master 端的 Binary Log 文件的名称以及在 Binary Log 中的位置;

3. Slave 的 IO 线程接收到信息后,将接收到的日志内容依次写入到 Slave 端的 Relay Log 文件(mysql-relay-bin.xxxxxx)的最末端,并将读取到的 Master 端的 binlog 的文

件名和位置记录到 master-info 文件中,以便在下一次读取的时候能够清楚的 高速 Master“我需要从某个 bin-log 的哪个位置开始往后的日志内容,请发给我”

4. Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后,会马上解析该 Log 文 件中的内容成为在 Master 端真实执行时候的那些可执行的 Query 语句,并在自身执 行这些

Query。这样,实际上就是在 Master 端和 Slave 端执行了同样的 Query,所 以两端的数据是完全一样的。

复制实现级别

  MySQL 的复制可以是基于一条语句(Statement Level),也可以是基于一条记录(Row level),可以在 MySQL 的配置参数中设定这个复制级别,不同复制级别的设置会影响到 Master 端的 Binary Log 记录成不同的形式。

  1. Row Level:Binary Log 中会记录成每一行数据被修改的形式,然后在 Slave 端 再对相同的数据进行修改。

  2. Statement Level:每一条会修改数据的 Query 都会记录到 Master 的 Binary Log 中。Slave 在复制的时候 SQL 线程会解析成和原来 Master 端执行过的相同的 Query 来再次执行。

  3.Mixed Level,实际上就是前两种模式的结合。在 Mixed 模式下,MySQL 会根据执行的每一条具体的 Query 语句来区分对待记录的日志形式,也就是在 Statement 和 Row 之间选择一种。

Replication 常用架构:

1.Master - Slaves

2. Master - Master

3.级联复制

4. Dual Master 与级联复制结合架构

转载于:https://www.cnblogs.com/lingshao/p/5672119.html

认识MySQL Replication相关推荐

  1. 用HAproxy+keepalived+mysql Replication 构建基于企业级负载均衡

    最近用HAproxy+keepalived+mysql复制测试高可用性Linux系统集群.    HAProxy是一款免费的提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理 ...

  2. MySQL Replication 主从复制全方位解决方案

    MySQL Replication 主从复制全方位解决方案 参考文章: (1)MySQL Replication 主从复制全方位解决方案 (2)https://www.cnblogs.com/clsn ...

  3. mysql流行的四种高可用架构之:Keepalived+Mysql Replication

    关于MySQL-HA,目前有很多种解决方案,目前互联网上用的较多的是Keepalived+Mysql Replication组合.MMM+Mysql Replication组合.Heartbeat+D ...

  4. mysql replication 协议_深入解析MySQL replication协议

    WHY 最开始的时候,go-mysql只是简单的抽象mixer的代码,提供一个基本的mysql driver以及proxy framework,但做到后面,笔者突然觉得,既然研究了这么久mysql c ...

  5. Mysql Replication 机制

    mysql replication 实现原理 一.replication 线程 Mysql 的Replication是一个异步的复制过程,从一个 mysql Instance(master)复制到另一 ...

  6. mysql replication principle--转

    原文地址:http://www.codeweblog.com/mysql-replication-principle/ 1, the replication process  Mysql replic ...

  7. mysql replication health is not ok_MySQL的高可用——MHA

    在之前的博客中,介绍了mysql的主从模型以及深层次的mysql的读写分离插件--ProxySQL,让我们可以很大程度上提升数据库服务器的性能和优化用户的体验,但是,我们对于数据库的可靠性似乎缺了一点 ...

  8. mysql双节点安装_快速安装及配置MySQL Replication双主节点集群--及改变数据保存目录...

    192.168.1.101  master/slave 192.168.1.102  slave 192.168.1.103  slave 操作系统均为centos6.5 原理图: 1. 分别安装my ...

  9. drbd heartbeat mysql_Heartbeat+DRBD+MySQL Replication故障处理

    不久前的一次机房网络故障,再一次对我们在Heartbeat+DRBD+MySQL数据库架构运维水平的一个考验,之前不止一次的测试与线上部署,还有之后大言不惭的关于该架构组件的所谓深入理解,在这一次不经 ...

最新文章

  1. (转)Unity中武器与人物的碰撞检测
  2. RTMPdump(libRTMP)源代码分析 4: 连接第一步——握手(Hand Shake)
  3. cas 4.2.7 官方手册_海城市地区,保险手册核验的简单流程
  4. 【Coursera】Getting Started with Python:Week One - Reading: Welcome to The Class
  5. 怎样从red hat linux图形登录改成从文本登录
  6. 《python透明人士,他是凭什么成为主流编程的宠儿?!》Python 正则表达式
  7. ubuntu同时装有MXNet和Caffe框架
  8. python环境及pycharm开发环境安装_Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)...
  9. oracle传输表空间功能测试(含详细过程)
  10. FlashDevelop打包IOS应用教程
  11. HashPasswordForStoringInConfigFile 已过时
  12. EndNote文献输出引用格式自定义修改与编辑界面解读
  13. github 迁移google code 项目
  14. python判断闰年_python判断闰年
  15. 最新顶级OA办公系统源码+CRM客户管理系统+自适应手机
  16. jar error in opening zip file
  17. Kryo官方文档学习笔记
  18. EtherCAT运动控制卡的电子凸轮追剪飞剪等应用(一)
  19. 我的校招季大概也是结束了。
  20. 微信翻译出 Bug 上热搜,程序员又背锅?!

热门文章

  1. PHP严重致命错误处理:php Fatal error: Cannot redeclare clas
  2. 关于Android模拟器访问本地地址(转)
  3. 开发js插件之所遇--02[DOM]
  4. Xeno Tactic 2
  5. 如何在cnblogs中插入LaTeX数学公式
  6. 软件工程概论作业:返回一个整数数组中最大子数组的和
  7. 每天定时备份mysql数据库任务
  8. Android之startActivityForResult的使用
  9. 实例教程一:电话拨号器
  10. 模板方法模式小记【原创】