一、为什么要进行数据库的主从复制?
1.在业务复杂的系统中,可能有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样即使主库出现了锁表的情景,通过读从库也可以保证业务的正常操作。
2.做数据的热备。
3.架构的扩展,业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。
二、主从复制
MySQL主从复制是一个异步的复制过程,底层是基于MySQL数据库自带的 二进制日志 功能。即一台或者多台数据库(从库)从另一台MySQL数据库(主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。
MySQL复制的过程
- 主库将改变记录到二进制日志中
- 从库将主库的二进制日志拷贝到它的中继日志
- 从库重做中继日志中的事件,将改变应用到自己的数据库中
三、 MySQL读写分离
读写分离就是只在主服务器上写,只在从服务器上读。基本的原理是让主数据库处理事务性查询,而从数据库处理 select 查询。数据库复制被用来把主数据库上事务性查询导致的变更同步到集群中的从数据库。