mysql 主从同步_Mysql主从同步的实现原理
1、什么是mysql主从同步?
当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。
2、主从同步有什么好处?
水平扩展数据库的负载能力。
容错,高可用。Failover(失败切换)/High Availability
数据备份。
3、主从同步的原理是什么?
首先我们来了解master-slave的体系结构。
如下图:
不管是delete、update、insert,还是创建函数、存储过程,所有的操作都在master上。当master有操作的时候,slave会快速的接收到这些操作,从而做同步。
但是,这个机制是怎么实现的呢?
在master机器上,主从同步事件会被写到特殊的log文件中(binary-log);在slave机器上,slave读取主从同步事件,并根据读取的事件变化,在slave库上做相应的更改。
如此,就实现了主从同步了!
下面我们来详细的了解。
3.1主从同步事件有哪些
上面说到:
在master机器上,主从同步事件会被写到特殊的log文件中(binary-log);
主从同步事件有3种形式:statement、row、mixed。
statement:会将对数据库操作的sql语句写入到binlog中。
row:会将每一条数据的变化写入到binlog中。
mixed:statement与row的混合。Mysql决定什么时候写statement格式的,什么时候写row格式的binlog。
3.2在master机器上的操作
当master上的数据发生改变的时候,该事件(insert、update、delete)变化会按照顺序写入到binlog中。
binlog dump线程
当slave连接到master的时候,master机器会为slave开启binlog dump线程。当master 的 binlog发生变化的时候,binlog dump线程会通知slave,并将相应的binlog内容发送给slave。
3.3在slave机器上的操作
当主从同步开启的时候,slave上会创建2个线程。
I/O线程。该线程连接到master机器,master机器上的binlog dump线程会将binlog的内容发送给该I/O线程。该I/O线程接收到binlog内容后,再将内容写入到本地的relay log。
SQL线程。该线程读取I/O线程写入的relay log。并且根据relay log的内容对slave数据库做相应的操作。
3.4如何在master、slave上查看上述的线程?
使用SHOW PROCESSLIST命令可以查看。
如图,在master机器上查看binlog dump线程。
如图,在slave机器上查看I/O、SQL线程。
4、讲了这么多,一图以蔽之
5、关于实战
关于实战,请参考我的另一篇文章:Mysql主从同步实战
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
mysql 主从同步_Mysql主从同步的实现原理相关推荐
- mysql架构 三级主从同步_MySQL 主从同步架构中你不知道的“坑”
以下操作征对指定不同步库 binlog-format=ROW模式 1 查看主从的binlog模式 mysql> show slave status\G ********************* ...
- mysql从库有张表不同步_mysql主从数据库不同步的2种解决方法
mysql主从数据库不同步的2种解决方法 (2014-04-26 08:16:11) 标签: 今天 适用于 数据 今天收现Mysql的主从数据库没有同步 先上Master库: mysql>sho ...
- redis mysql主从延迟_MySQL主从延迟问题解决
今天我们就来看看为什么会产生主从延迟以及主从延迟如何处理等相关问题. 坐好了,准备发车! 主从常见架构 随着日益增长的访问量,单台数据库的应接能力已经捉襟见肘.因此采用主库写数据,从库读数据这种将读写 ...
- mysql主从技术_MySQL主从架构的实现
目录 一主一从 1.1 环境准备: 1.2 准备步骤: 1.3 实现步骤: 1.3.1 配置master主服务器 1.3.2 创建复制帐号 1.3.3 查看主服务器状态 1.3.4 配置slave从服 ...
- mysql主从维护_mysql主从日常管理维护
mysql主从日常管理维护 1)查看从服务器状态 为了防止复制过程中出现故障从而导致复制进程停止,我们需要经常检查从服务器的复制状态. 一般使用show slave status命令来检查. 例如: ...
- mysql主从配置_MySQL主从配置详解
主服务器数据库的每次操作都会记录在其二进制文件mysql-bin.xxx(该文件可以在mysql目录下的data目录中看到)中,从服务器的I/O线程使用专用账号登录到主服务器中读取该二进制文件,并将文 ...
- 两台服务器之间mysql数据库怎么做同步_MySQL 数据库同步结构总结
一.主从同步(基础结构)1.结构图主从同步可实现同主机的主从同步,也可以实现不同主机的主从同步.2.应用场景a.可实现读写分离,通过增加从库可以提高数据库的性能,在主库实现增删改等更新操作,在从库实现 ...
- mysql主从安装_MySQL主从详细安装步骤
网站: 程序在:web服务器192.168.1.100上面 数据库在:MySQL服务器192.168.1.123上面 实现目的:增加一台MySQL备份服务器(192.168.1.124),作为MySQ ...
- mysql修复主从不一致_MySQL主从不一致修复
场景: 线上正在服务的库由于紧急主从切换导致主从不一致,报错信息如下: Last_Error: Coordinator stopped because there were error(s) in t ...
- mysql otter 数据同步_MySQL数据同步之otter
一.otter介绍 基于日志数据,用于MySQL或者ORACLE之间准实时同步数据. 用途: mysql/oracle互相同步 中间表/行记录同步 二.原理及架构图 otter整体模块 manager ...
最新文章
- 2-sat问题,输出方案,几种方法(赵爽的论文染色解法+其完全改进版)浅析 / POJ3683...
- 如何查看linux系统服务器磁盘大小和文件占用情况
- 销售 750000 册爆款「蟒蛇书」的新版抢先上市 | 9月书讯
- JS window对象的top、parent、opener含义介绍 以及防止网页被嵌入框架的代码
- C#获取和设置环境变量
- OC语言Block和协议
- hive几种执行sql的方式总结
- unity3d 700种 材质球_温度与耐磨钢球的关系
- filebeat 乱码
- qtabwidget切换tab事件_某超超临界机组初压/限压切换过程中扰动原因分析
- Oracle PL/SQL块 多表查询(emp员工表、dept部门表、salgrade工资等级表)
- 能力成熟度模型(CMM)
- Linux内核用户权限的实现,Linux内核设计与实现(6)---系统调用
- 贺利坚老师汇编课程50笔记:call和ret配合
- Windows 7 的一些使用技巧
- 8.企业安全建设指南(金融行业安全架构与技术实践) --- 安全考核
- 新颖的自我介绍_有创意的自我介绍模板(精选6篇)
- Codeforces - Mother of Dragons
- 【Wing Loss】《Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks》
- lua 调用c++ dll, 提示:%1 不是有效的 Win32 应用程序。