参考https://blog.csdn.net/hguisu/article/details/7325124
这边是根据参考文章,忽略细节内容的一个mysql主从复制流程大致总结。
一、为什么要用主从复制?
①减轻单库压力;生产上单库的吞吐量过大会产生各种各样因为性能不足而出现的问题,建立从库可以极大提升可用性和容错性,比如读写分离等操作。
②进行备份;因服务器崩溃或操作失误产生主库数据错误的情况下,可以先以从库备份恢复,再根据日志找细节,提高恢复效率。
③集群负载均衡;根据主从复制的某些架构在必要的时候从库与主库身份调换,以保证数据的稳定性。比如主库宕机。
二、主从复制基本流程
①主服务器发生更新操作(增删改)产生Binarylog二进制日志文件(记录sql语句以及各类信息)
②从服务器发送io请求,以串行化的方式读Binarylog日志文件进行复制操作写入从服务器Relaylog文件中。(此步骤因为是串行化方式故一般情况下不会去读Relaylog文件,会直接读串行流,不用担心效率问题)
③从服务器开启sql线程读串行流或Relaylog日志执行当前流中sql操作。(在每次读取时主库会维护Binarylog日志文件中的从库索引,记录当前从库开始读取的位置,以serverid标识从库,多个从库维护多个索引)
④更新维护的从库索引。
过一段时间更新配置篇。