Mysql 主从数据库 数据同步 原理
2013-05-03 14:34
337 查看
在Mysql中,数据同步Replication是一个异步的复制过程,也就是从Master复制到Slave。
同步过程会启动三个线程,Master端的IO线程,Slave端的IO线程和SQL线程。(在旧的Mysql中,只有IO线程,性能不是很高,会丢失数据)。
要实现同步功能,需要打开Master端的二进制日志功能。因为整个同步过程就是Slave从Master端获取该日志文件然后在自己数据库中顺序执行日志中记录的各种操作。
Mysql同步过程:
一:Slave启动IO线程,连接Master,请求从指定日志文件指定位置之后的日志信息。
二:Master接受到请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志内容,返回给Slave的IO线程。 返回的信息不仅包括Slave请求的日志文件的内容,还包括本次返回的信息在Master端的二进制文件的名称以及位置。
三:Slave的IO线程接受到信息后,将信息写到Slave端的中继日志文件的末端。并将读取到的Master端的文件名和位置记录到master-info文件,以便下次请求时可以告诉Master端读取日志的位置。
四:Slave端SQL线程检测到中继日志文件新增的内容后,会马上解析文件中的内容成为在Master端真正执行的Query语句,并在自身执行这些Query语句。这样两端的数据完全一样
同步过程会启动三个线程,Master端的IO线程,Slave端的IO线程和SQL线程。(在旧的Mysql中,只有IO线程,性能不是很高,会丢失数据)。
要实现同步功能,需要打开Master端的二进制日志功能。因为整个同步过程就是Slave从Master端获取该日志文件然后在自己数据库中顺序执行日志中记录的各种操作。
Mysql同步过程:
一:Slave启动IO线程,连接Master,请求从指定日志文件指定位置之后的日志信息。
二:Master接受到请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志内容,返回给Slave的IO线程。 返回的信息不仅包括Slave请求的日志文件的内容,还包括本次返回的信息在Master端的二进制文件的名称以及位置。
三:Slave的IO线程接受到信息后,将信息写到Slave端的中继日志文件的末端。并将读取到的Master端的文件名和位置记录到master-info文件,以便下次请求时可以告诉Master端读取日志的位置。
四:Slave端SQL线程检测到中继日志文件新增的内容后,会马上解析文件中的内容成为在Master端真正执行的Query语句,并在自身执行这些Query语句。这样两端的数据完全一样
相关文章推荐
- MySQL--主从数据库同步原理
- mysql 数据库主从数据同步
- MYSQL主从不同步延迟原理分析及解决方案
- Mysql 主从数据库同步(centos篇)
- MySql 5.7.18 数据库主从(Master/Slave)同步安装与配置详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- MySQL数据的主从复制、半同步复制和主主复制详解
- mysql/mariadb 主从复制实现数据库同步
- Mysql 主从数据库同步
- MySQL主从数据同步延时分析
- solr 7+tomcat 8 + mysql实现solr 7基本使用(安装、集成中文分词器、定时同步数据库数据以及项目集成)
- mysql数据主从同步失败解决方案
- mysql主从数据库同步详细配置测试
- 【mysql】跨数据库同步数据
- mysql主从数据库不同步的2种解决方法 (转载)
- mysql主从数据库不同步的3种解决方法
- Mysql 主从数据库同步
- mysql 主从半同步模式和数据库同步过滤
- 让两台服务器的MySQL(5.7)数据同步_主主同步(互为主从关系)
- linux shell mysql 数据库主从同步状态检查告警