mysql的主从复制是如何实现的
前言
MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为我再Master端执行了一条SQL命令,那么在Salve端同样会执行一遍,从而达到主从复制的效果。
MySQL主从复制架构图
- 一主一从
master-slave-replication-01
- 一主多从
master-slave-replication-02
- 级联
master-slave-replication-03
- 双主一从
master-slave-replication-04
- 互为主从
master-slave-replication-05
- 环状
master-slave-replication-06
主从复制原理
MySQL的主从复制是一个异步的复制过程,数据库从一个Master复制到Slave数据库,在Master与Slave之间实现整个主从复制的过程是由三个线程参与完成的,其中有两个线程(SQL线程和IO线程)在Slave端,另一个线程(IO线程)在Master端。
主从复制流程图
流程说明:
MySQL主从复制之前我们需要先启动Master数据库然后再启动Salve数据库,然后在Salve数据库中执行start slave;
,执行完成之后,流程就如下了:
- Salve的IO线程会读取mastr.info文件中配置好的主库信息,比如说存放的有:Master数据库的用户名、密码、端口、还有Master的binlog索引位置;
- 拿到信息之后就带着信息去链接Master的主库IO线程
- 当主库的IO线程先检查SLave传过来的配置信息是否正确,如果正确,就拿着Slave传过来的binlog索引位置和Master库的binlog文件中最后一个索引位置进行对比,如果一致就陷入等待状态,等待Master的binlog索引位置更新;
- 如果不一致就把Slave传过来的binlog索引位置往后的所有SQL语句包括最后一条SQL语句的索引位置发送个给Slave的IO线程;
- Slave的IO线程拿到信息之后,先把Master传过来的binlog索引在Slave的master.info文件中进行更新;
- 然后再把Master传过来的SQL语句写入到relay文件中,然后继续循环执行第二个步骤;
- Slave的SQL线程会一直持续的观察relay日志文件中是否有改动,如果没有就继续监听;
- 如果发现relay中有变动,那么就获取变动的内容转换为SQL语句,并且把SQL语句在Salve的数据库中进行执行
mysql的主从复制是如何实现的相关推荐
- mysql的主从复制原理与实现
关于mysql的主从复制,之前一直在听说这个话题,一直没有实现,昨天学习了下,原来是这么回事: 既然是主从复制,那么肯定有主有从,也就说一个主数据库(一般为写库),一个从数据库(读库).主数据库更新了 ...
- php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制
Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...
- MySQL Replication 主从复制全方位解决方案
MySQL Replication 主从复制全方位解决方案 参考文章: (1)MySQL Replication 主从复制全方位解决方案 (2)https://www.cnblogs.com/clsn ...
- MyCat学习:使用MySQL搭建主从复制(一主一从模式)
首先使用MyCat登录需要一个前提,那就是有MySQL的主从复制 开始搭建MySQL主从复制(一主一从) 一.配置文件修改 主机配置文件修改 server-id=1 # 定义服务器唯一ID log-b ...
- Mysql 8主从复制配置图解
Mysql 8主从复制配置图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理.本文主要介绍mysql的主从的配置. 注:1 当前主服务 ...
- MySQL搭建主从复制 读写分离 分库分表 MyCat高可用
主从演示 读写演示 分表演示 主从复制 环境的介绍 系统环境:centos7.0 客户端连接工具:xshell 远程文件传输工具:xftp 服务器: 192.168.126.138(主) 192.16 ...
- 基于mysql的主从复制之Mycat简单配置和高可用
what-mycat 1.Mycat就是MySQL Server,而Mycat后面连接的MySQL Server,就好象是MySQL的存储引擎,如InnoDB,MyISAM等. 因此,Mycat本身并 ...
- 利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复。
利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复. 一.pt-table-checksum检查主从库数据的一致性 pt-table-checksum在MASTE ...
- 怎样解决MySQL数据库主从复制延迟的问题?
1.网络超时 2.慢查询 3.流量 问题一:主库的从库太多,导致复制延迟 从库数据以3-5个为宜,要复制的从节点数量过多,会导致复制延迟 问题二:从库硬件比主库差,导致复制延迟 查看Master和Sl ...
最新文章
- jstl:sql标签介绍
- linux 查找进程 删除进程 命令
- 一个SAP开发人员的2018年终总结
- [转]总结:Apache/Tomcat/JBOSS/Jetty/Nginx区别 .
- 【Java】jdk和eclipse下载安装
- linux内核的I2C子系统详解4——i2c-s3c2410.c文件中的adapter、algorithm
- mac hosts文件已锁定无法修改怎么办?hosts修改权限设置教程
- 软工第二次结对作业---部门录取方案实现
- java ftp遍历所有子文件_Java 遍历指定文件夹及子文件夹下的文件
- python网站服务器好麻烦_python写的网站,云服务器经常无法访问
- chrome浏览器不展示地址栏的完整路径解决
- ISO27001信息安全管理体系
- Keytool命令详解
- VS2015 还是VS2017 好用_如何卸载清理vs2017前vs2015,vs2013等版本
- 一个可以免费下载英文书籍的网站
- Rxjava(Subject)-BehaviorSubject--代码分析
- vue移动端网页微信分享
- FortiGate常用命令
- Java learn lambda的方法引用
- 就是美女,怎么了!!!
热门文章
- Mybatis逆向工程过程中出现targetRuntime in context mybatisGenerator is invalid
- VR技术怎么落地,行业应用怎么挖掘,来江苏虚拟现实发展大会侃侃
- 为Linux上的Tomcat安装apr支持
- 《Java工程师修炼之道》内容概览
- pro*c 倒出数据库数据
- HTTP Slow Attack测试工具SlowHTTPTest
- 程序员看过来!高通漏洞赏金最高1.5万美金
- 精益业务分析宣言解读
- uikit框架开发前期配置及定制主题方法。
- centos6.5用memcached 来作PHP 的session.save_handler