MySQL主从复制原理及搭建过程
复制概述- 复制即把一台服务器上的数据通过某种手段同步到另外一台或多台从服务器上,使得从服务器在数据上与主服务器保持一致。
- MySQL从3.X版本就开始支持复制功能,期间多次完善、改进、新增功能,比如并行复制的改进、GTID复制的推出,多源复制的完善等众多功能的实现,目前该技术已基本成熟。
- MySQL的复制功能是基于数据库Server层实现的,所以无论InnoDB引擎、MyISAM引擎或其他引擎都可进行同步复制。
复制过程- MySQL的复制是通过binlog功能实现的,具体分为3个线程。
- 主节点:dump 线程,负责采集 binlog 数据与同步库 IO 线程交互。
- 从节点:IO 线程将获取到的数据转储成 relaylog 文件(relaylog内部存储的内容与binlog一致)
- 从节点:slave 线程将 relaylog 的数据读取出来,然后写入到数据库中。
复制流程图
- MySQL的复制是通过binlog功能实现的,具体分为3个线程。
- 主节点:dump 线程,负责采集 binlog 数据与同步库 IO 线程交互。
- 从节点:IO 线程将获取到的数据转储成 relaylog 文件(relaylog内部存储的内容与binlog一致)
- 从节点:slave 线程将 relaylog 的数据读取出来,然后写入到数据库中。