MySQL高可用方案从入门到精通
主从复制机制:
Mysql主从复制的用途
- 实施灾备,用于故障切换
- 读写分离用于查询服务
- 备份,避免数据丢失
Mysql主从复制的条件
- 主库开启binlog日志(从库需要从这里面读取)
- 主从的Mysql server-id需要不同
- 从库服务器能连通主库
异步复制:
在MySQL 5.5以前,MySQL的复制是异步操作,主库和从库存在着数据延迟,这可能会导致一个问题:主库在事务提交后,从库在尚未得到日志内容时,主库因故障导致日志文件损坏或丢失,此时从库就无法完成数据的同步导致主从数据的不一致。
为了解决这个问题,MySQL 5.5引入了半同步复制机制。
对于异步复制流程,主库在执行完事务提交的操作后就立刻将执行结果返回给客户端,无需等待日志传送给从库后再返回。
同步复制:
MASTER提交事务,直到事务在所有的SLAVE都已提交,此时才会返回客户端,事务执行完毕,完成一个事务可能会有很大的延迟。
半同步复制:
而对于半同步复制,为了保证每个事务都能够完好无损地同步到从库,主库在事务提交后并不会马上将执行结果返回给客户端,而是先将日志推送给从库后才将执行结果返回给客户端。这样也就保证了这个事务在两个日志文件中都有记录。
在半同步复制过程中,如果主库在提交事务、将事务内容写入日志中的过程发生了宕机,则事务并不会提交成功,两个日志都不会存在该事务的记录,所以也就保证了数据的一致。
如果从库发生了故障,那么主库会在事务提交后等待一段时间(时间长短可自行配置),如果在等待时间内从库依然没有响应,那么主库会自动切换为异步模式,并返回客户端事务成功提交的结果。
半同步复制工作机制处于同步和异步之间,MASTER的事务提交阻塞,只要一个SLAVE已收到该事务的事件且已记录,他不会等待所有的SLAVE都告知已收到,且他只是接收,并不用等其他执行且提交。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2018-08-18 mysql-1
2017-08-18 JavaScript基础知识