本文整理自网络,侵删。
目录
- 1. MySQL主从同步实现方式
- 2. MySQL主从同步的作用
- 一主多从架构
- 双主多从架构
- 3. 主动同步的原理
- 4. 主从同步延迟问题
- 主从同步延迟的原因有哪些?
- 主从同步延迟的解决方案?
- 5. 如何提升主从同步性能
- 从库开启多线程复制
- 修改同步模式,改为异步
- 修改从库Bin Log配置
- 知识点总结
1. MySQL主从同步实现方式
MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句。
Bin Log共有三种日志格式,可以binlog_format配置参数指定。
参数值 | 含义 |
---|---|
Statement | 记录原始SQL语句,会导致更新时间与原库不一致。 比如 update_time=now() |
Row | 记录每行数据的变化,保证了数据与原库一致,缺点是数据量较大。 |
Mixed | Statement和Row的混合模式,默认采用Statement模式,涉及日期、函数相关的时候采用Row模式,既减少了数据量,又保证了数据一致性。 |
常见的主从同步架构有一主多从、双主多从
2. MySQL主从同步的作用
- 读写分离,提升数据库性能
- 容灾恢复,主服务器不可用时,从服务器提供服务,提高可用性
- 冗余备份,主服务器数据损坏丢失,从服务器保留备份
一主多从架构
一般是主库负责所有读写请求,而从库只负责容灾恢复和冗余备份。
如果做了读写分离的话,主库负责写请求,从库负责读请求,可以提升数据库性能。
双主多从架构
一般是主库1负责所有读写请求,主库2不对外提供服务,只用来容灾恢复。
相比一主多从架构,双主多从架构可以减少宕机时间,更快恢复数据库可用状态。
3. 主动同步的原理
- 当主库数据发生变更时,写入本地Bin Log文件
- 从库IO线程发起dump主库Bin Log文件的请求
- 主库IO线程推送Bin Log文件到从库中
- 从库IO线程把Bin Log内容写入本地的Relay Log文件中
- 从库SQL线程读取Relay Log文件内容
- 从库SQL线程重新执行一遍SQL语句
4. 主从同步延迟问题
主从同步最常遇到的问题就是主从同步延迟,可以通过在从库上执行show slave status命令查看延迟时间,Seconds_Behind_Master表示延迟的秒数。
主从同步延迟的原因有哪些?
从库机器性能较差:
主库负责所有读写请求,从库只用来备份,会用性能较差的机器,执行时间自然较慢。
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 一文详解MySQL主从同步原理
标签:mysql
相关推荐
评论
管理员已关闭评论功能...