部署架构
大约 2 分钟
部署架构
主从复制
主节点复制到一个或多个从节点
MySQL 默认采用异步复制方式
可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。
好处用途
- 读写分离
- 数据备份
- 高可用HA
- 架构扩展 高性能
主从形式
- 一主一从
- 一主多从,提高系统的读性能
- 多主一从 (从5.7开始支持)
- 双主复制,也就是互做主从复制
- 级联复制
MySQL 主从复制原理
- 要实施复制,首先必须打开Master 端的binary log(bin-log)功能,否则无法实现。
- MySQL主从复制涉及到三个线程,一个运行在主节点(log dump thread),其余两个(I/O thread, SQL thread)运行在从节点
- 当从节点连接主节点时,主节点会创建一个log dump 线程,用于发送bin-log的内容。
- 在读取bin-log中的操作时,此线程会对主节点上的bin-log加锁,当读取完成,甚至在发动给从节点之前,锁会被释放。
- 当从节点上执行
start slave
命令之后,从节点会创建一个I/O线程用来连接主节点,请求主库中更新的bin-log。- I/O线程接收到主节点binlog dump 进程发来的更新之后,保存在本地relay-log中。
- SQL线程负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。
主从复制模式 默认是异步的模式
主节点不会主动push bin log到从节点
- 半同步模式
- 主从数据库的数据延迟缩小
- 半同步模式不是mysql内置的,从mysql 5.5开始集成,需要master 和slave 安装插件开启半同步模式。
命令
- 查看同步状态
show slave status\G
保证io线程和sql线程都是running YES 检查binlog是否一致
Master_Log_File和Relay_Master_Log_File所指向的文件必须一致
Slave_SQL_Running_State 显示为wait 意思是中继日志的sql语句已经全部执行完毕