主从复制的意义
- 读写分离,master写,slave读,使数据库接收更大的并发(高并发)。
- 数据备份
- 故障恢复,master宕机后可以切换到slave继续工作。
- 降低单个机器的io频率,提高性能(高性能)。
主从复制的原理
master将操作语句记录在bin-log中,slave将其复制到relay-log从新执行。
master:为每一个连接的slave创建一个log dump线程传输bin-log内容。
slave:创建两个线程处理传输内容。
- I/O线程:读取bin-log内容并拷贝到本地文件。
- SQL线程:读取relay-log更新的内容并解析成sql语句执行。
数据库的日志
SQL server层
bin-log
Innodb存储引擎层
redo-log
undo-log
- master将操作语句写入bin-log
- slave想master建立连接
- master建立bin dump thread,将bin-log的内容发送到slave
- slave创建io线程将读取的内容写入relay-log
- slave的sql线程读取更新并执行。
主从形式
- 主从复制:主到从单向传输,slave被修改之后主库不会同步
- 主主复制:双向同步
- 一主多从:最常用,提高读取的响应效率
- 多主一从:灾难备份
- 联机复制:
解决从库复制延迟
- 从库MTS并行复制技术,永久解决复制延迟。
- 一主多从,读写分离,增加从库分担压力。
- 在业务和mysql之间添加nosql存储未同步数据,降低读压力,同步后删除。
- 将读取slave改为读取master
网友评论