1: 为什么需要高可用
MySql单机是可以使用,但是如果有一天MySql突然挂了,那么整个服务就都不可用了,这是不能接受的,总得有个兜底的方案
2:MySql高可用
MySql高可用也就是要保证即使有一台服务器挂了,也要保证服务能正常运行,所以在生产环境下至少也要保证有 一主一从 的架构,既然涉及到了主从,那么就会有数据同步的问题,MySql提供了几种数据同步策略
3:MySql主从复制原理
在主从进行同步过程中会涉及到三个线程:
- 从库的I/O线程:主要是获取主库的binlog日志,获取到日志之后将日志写到relay log日志文件中
- 从库的sql线程:读取relay log日志内容,解析成sql执行,其实就是执行主库的sql
- 主库的log dump线程:读取主库的新增的binlog日志文件内容,发送给从库
4: 主从同步策略
4.1:全同步复制
客户端执行SQL时候,必须等到所有从库和主库都提交成功之后才能返回响应给客户端
-
优点:可以保证数据不丢失
-
缺点:效率很低,随着机器的增加,执行的效率会越来越低,因为要同步的机器有很多