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

[经验分享] mysql高可用架构详解

[复制链接]

尚未签到

发表于 2018-10-6 07:51:14 | 显示全部楼层 |阅读模式
  高可用(High Availabiltity)

  •   应用提供持续不间断(可用)的服务的能力
  •   系统高可用性的评价通常用可用率表示


  造成不可用的原因

  •   硬件故障(各种)
  •   预期中的系统软硬件维护
  •   软件缺陷(应用代码,服务程序都可能存在bug)
  •   ***,泄露,认为失误...等安全事件
  •   对于系统来说,不可用时间是各关键组件不可用时间的总和.....
  提高可用性的主要手段

  •   冗余,Redundancy
  •   关键软硬件通过备用冗余避免故障时长时间的不可用
  •   数据软件,硬件,存储的数据,都需要通过冗余确保故障时可替换


  mysql高可用常见方案:

  •   数据库服务在冗余实现上有其特殊性


    •   数据:服务"有状态"与数据冗余
    •   数据库可用性考虑两部分:数据可用性,服务可用性;

  •   实现方式多种多样,同一种数据也会有多种实现方案
  •   可用性目标循序渐进


    •   任何故障都不会造成数据丢失->可以较快速恢复服务(高可用)

  高可用方案
  
  1.mysql--基于共享存储的单活方案(不常用)



  •   SAN,方案比较昂贵;因此不常用;
  •   且数据库备用机,只是机器活着,但是没有没有起mysql服务;


    •   因为大部分共享存储或数据库是不允许同一份数据被不同数据使用的;

  •   本地数据通过RAID等手段保证数据安全
  2.基于存储复制的数据冗余单活(不常用)



  •   存在一定浪费,备用机器一直不在用,等待主机挂掉,才会使用备用机;
  •   而且DRBD(两台机器间通过网络,备份数据),不是100%的保证数据不丢失;
  3.基于集群提交通信协议的多主复制(一定场景适用)


  基于主从复制的高可用方案
  
  4.基于Mysql主从复制(常用,普适)



  •   备库,在线上也会提供服务,避免浪费;
  •   而主从复制,也保证了数据不会丢失。
  mysql主从复制高可用方案需要改进的问题

  •   主从服务器各自有IP地址,发生主从切换后应用需要修改重启;


  •   如何让应用快速找到从库;VIP/DNS
  人工判断主库是否故障再发起切换需要花较多时间


  •   如何自动探知;监控探知并自动VIP/DNS;
  主从复制存在客观延迟,切换后可能造成事务数据丢失。


  •   由于网络延时,如何避免数据丢失。
  1.为了避免应用人工修改切换IP,引入VIP(virtual ip)漂移方案:




  方案二:
  DNS,应用服务器,使用域名;
  平时,将域名注册在主库上,而主库挂掉,将域名注册到从库就可以了;
  2.为了减少人工介入处理的时间开销引入自动探活处理机制


  高可用中间层与RDS

  •   VIP/DNS解决 应用切换问题
  •   监控和管理服务器解决自动判断故障切换和VIP/DNS漂移
  •   VIP/DNS管理+探活+主从关系切换 = 高可用中间层


    •   透明切换管理+靠谱数据探活+使用切换 = 高可用中间层

  •   云环境+高可用中间层+底层数据库=一种PaaS=基本RDS、
  高可用中间层

  •   MHA


    •   自动选择复制延迟最小的从节点并试图补全日志(但大部分主机故障下行不通)
    •   通常要求两从以上,会进行主从关系切换
    •   不提供VIP管理方案

  •   MMM


    •   提供了基本的VIP管理功能
    •   适合双主配置的一对主机,不会主动切换主从关系
    •   不支持主从数据延迟判断和补全

  一般使用MHA,开源;
  3.mysql主从复制延迟
  为什么日志传输延迟
  为什么主从复制,主从库会数据不一致;


  解决方案:
  mysql半同步技术:
  主库一次commit,要等到主库持久化完成,以及从库也持久化完成,才给主键放回commit成功。
  但是问题:
  主库等待从库的时间是不可控的;
  主库发现从库写不进去了,可以等待几秒,之后主库复制自动降级成异步复制;但这也可能导致数据不一致;


  较完善的mysql高可用方案

  •   半同步复制+高可用中间层+VIP管理方案
  •   高可用中间层=靠谱探活+主从切换+使用VIP管理的接口
  例如:

  •   半同步复制+MHA(高可用中间层)+Keeplive(VIP管理方案)
  •   半同步复制+RDS
  总结

  •   高可用指标至少3个9目标4个9
  •   高可用核心就是使用冗余
  •   数据库高可用两个部分


    •   数据可用性--数据有状态
    •   服务可用性

  •   高可用方案


    •   基于SAN方案的改进,不使用SAN设备
    •   单活,备用机浪费
    •   DRBD基于两台机器间通过网络备份数据,数据不能100%保证
    •   SAN,设备昂贵
    •   单活,备用机浪费,因为同一份数据不能被不同mysql实例使用;
    •   本地数据可以通过RAID等手段保证
    •   基于共享存储SAN的单活方案

    •   基于DRBD存储复制的数据冗余单活

    •   多主复制--mysql cluster

  •   基于mysql主从复制(常用,普适)


    •   备份,在线上可提供只读服务,避免浪费;
    •   主从复制,也保证了数据不会丢失

  •   基于mysql主从复制的问题


    •   VIP管理方案+高可用中间层+半同步复制
    •   使用半同步复制技术,但也要考虑到从库宕机,主库应该自动降级成异步复制;
    •   使用监控服务器,自动靠谱探知+自动主从切换
    •   使用VIP(virtual IP)/DNS管理方案,当发生切换是,只需要将VIP从主库漂移到从库,对应用来说是透明的。


    •   主从服务器各有IP地址,发生主从切换后应用需要修改重启;

    •   人工判断主库是否故障,在发起切换需要时间长

    •   主从复制存在客观延迟,切换后可能造成事务数据丢失

    •   解决问题后的mysql高可用方案


  •   高可用中间层


    •   VIP/DNS管理+靠谱探活+主从关系切换=高可用中间层
    •   云环境+高可用中间层+底层数据库=一种paas=基本RDS
    •   MHA/MMM

  •   MHA


    •   自动选择复制延迟最小的从节点并试图补全日志(主机故障下行不通)
    •   自动探活
    •   自动主从切换
    •   不提供VIP管理方案,但提供使用VIP方案的接口



运维网声明 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-613066-1-1.html 上篇帖子: 理解MySQL——架构与概念 下篇帖子: Mysql主从复制的实现细节
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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