MySql主从复制的作用
- 读写分离
- 备份
- 高可用
- 架构扩展
MySql主从形式
- 一主一从
- 一主多从,提高系统读性能。
- 多主一从,可以将多个数据库备份到一台性能较好的额服务器上。
- 双主复制,互做主从复制,一方变更,会通过复制应用到另一方数据库中。
- 级联复制,3-5个从节点连接主节点,其它节点作为二级或者三级节点与从节点相连。
MySql主从复制原理
MySql 主从复制涉及三个线程,一个运行在主节点(log dump thread),两个(I/O thread,SQL thread)运行在从节点上。
- log dump线程:当从节点连接主节点时,主节点创建log dump线程对bin-log加锁,读取内容发送到从节点。
- I/O线程:当从节点上执行“start skave”命令后,从节点会创建一个I/O线程用来连接主节点,请求主库中更新的bin-log。I/O线程接收到主节点binlog dump进程发来的更新之后,保存在本地relay-log中。
- **SQL线程:**SQL线程负责读取relay-log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。
MySQL 主从复制默认是异步的模式。MySQL增删改操作会全部记录在binary log中,当slave节点连接master时,会主动从master处获取最新的bin log文件。并把bin log中的sql relay。