设为首页 收藏本站
查看: 523|回复: 0

[经验分享] mysql主从复制--概念及架构

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-4 09:23:56 | 显示全部楼层 |阅读模式
mysql repication
1 mysql repication原理
    前端用户的写操作,或者是数据库修改操作,都会记录到二进制日志文件,保存为事件;master通过3306端口将binlog发给slave mysql服务器,slave mysql服务器将binlog保存到relay log,读取relay log并执行一遍,将数据写入磁盘

1.1 主从示意图
wKioL1d5Gqaxq72pAABA_BllLwI101.jpg

1.2 一主多从、多级复制

wKiom1d5GqbSkWMyAACzu56aN8o732.jpg


2 mysql repication先天缺陷
    mysql一个查询只能在一颗CPU上执行,若主有多个CPU,同时执行多个事务,多个事务的往数据库中写数据的速度会比较快,但是二进制日志会在内存中缓存,一段时间后才会一条一条从缓存同步到二进制日志文件。此时,二进制日志才会同步到从上,salve从中继日志一条一条读取事件,并执行,这样,主的速度比从快很多

3 mysql repication模式
异步:默认模式,master本地执行成功,即成功;不管二进制日志是否发送发送到slave
半同步:在一主多从模式下,master将二进制日志发送到多个slave,但只保证一个slave接收成功,则表示半同步成功,与同步类似。mysql 5.5后支持半同步。
同步:master执行一条语句,master二进制日志同步到slave中继日志中,slave读取中继日志文件并执行成功,返回信息通知master执行成功。
同步模式,mysql的速度会慢很多,前端应用将会等待很久。

4 mysql replication作用
1、slave下线做冷备份,热备较为复杂。
2、高可用,当主出现故障,从稍作处理即可上线工作
3、异地容灾
4、scale out:分摊读负载,一主多从,主写从读

5 在mysql主从中,不使用mysql代理,如何实现master负责写,slave负责读?(以discuz为例)
    php模块本身并不和mysql产生交互,和mysql交互的是discuz,让discuz解决读写问题;
    双主模型,可以减轻服务器读数据的压力,无法减轻写操作;并且容易出现重复记录二进制日志的情况,因此少采用。

6 主从、一主多从、双主都不能减轻一台服务器写的压力;当一台服务器不能承受写压力时:
1)scale on,提高其配置
2)scale out,数据拆分(垂直拆分、水平拆分)
wKiom1d5Gqaw4GrGAAAb5QLy-ck218.jpg wKioL1d5GqfyEG5EAAAuO7f5hiE118.jpg



7 mysql读写分离的实现
mysql-proxy
amoeba
8 数据拆分
cobar

9 mysql日志二进制日志 bin lpg
    存放位置:数据目录下mysql-bin.xxxxxxxx

    滚动:1 达到最大上线;2 flush logs;3 服务器重启
    清除二进制日志命令:purge
    格式:statement,基于语句,不建议使用
          row,基于行,建议使用
          mixed,混合
    mysql-bin.index:二进制日志文件索引文件
    查看当前mysql使用的二进制日志文件:show master stattus;
    查看二进制日志文件内容:show binlog events in “file”;

    查看二进制日志文件列表:show binary logs;

    二进制日志记录事件包含的元素:timestamp,position(offset),event,server-id

    二进制日志可用于即时点还原,但并不能替代数据备份?

        使用二进制日志恢复数据时,并不能保证数据和以前完全一样。多颗CPU并行处理数据,但记录日志时是串行写入的。


事务日志
错误日志 error log
一般查询日志
中继日志 relay log
慢查询日志




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-239041-1-1.html 上篇帖子: mysql主-主复制 下篇帖子: mysql主从复制--mysql-5.6基于GTID及多线程复制 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表