1. 概述
本篇博客主要阐述配置MySQL主从复制的过程。
使用了两个节点:
- 主节点:node11,IP地址:192.168.80.11
- 从节点:node12,IP地址:192.168.80.12
两个节点已经ssh互通,操作系统为centos7最小化安装。
2. MySQL主从复制原理
MySQL主从复制有点类似于openLDAP的主从复制。
主库节点会把DDL和DLM操作,通过二进制日志传递给从节点。然后从节点对日志执行重做。从而使得主从数据一致。这个过程实际更像人工两次操作的自动化。
MySQL的默认复制是异步复制。复制的对象可以是整个数据库,也可以是单个数据表。
复制的好处有很多。如果主库出现问题,可以切换到从库提供服务。很多查询工作在从库进行,避免对主库造成压力。在从库执行备份等操作,避免影响主库的服务和业务。
2.1 复制操作的细节
主节点的主库在事务提交时,会把数据库的变更作为事件,记录在binlog中。主库的sys_binlog控制binlog刷新到磁盘。
主节点的主库推送二进制文件给从节点的从库的中继日志relay log。从库根据这个中继日志,做数据库变更。
从节点的从库启动复制(start slave)时,首先创建I/O线程连接主库。主库随后创建binlog dump线程读取数据库事件发送给I/O线程。I/O线程获取到事件更新到中继日志,然后从库的SQL线程读取中继日志更新数据。
为了避免从库宕机重新开机之后无法正确复制,从库还创建了两个日志文件:master.info和relay-log.info来保存复制进度。
3. 部署过程
截图个试试看
https://user-gold-cdn.xitu.io/2020/4/28/171be7f0e0805d0d?w=801&h=261&f=png&s=29584