热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

利用Heartbeat和drbd做mysql的高可用性,lvs做slave负载均衡

 650)this.width650;border0altsrchttps:img2021.freeaihub.comff80689b3d7d0b7ff5e07215ea391de


 







 


 


 




使用drbd,对于mysql存储引擎的选择最好使用
innodb
,因为这个存储引擎可以要求每次写操作立即写入磁盘,而不是放在内存中,myisam的写操作基本上是先放在内存中,然后定期写入磁盘。




实验证明,
drbd+innodb+heartbeat
可以实现无缝故障转移,不中断服务,实验中,很多次我进行了写数据时掉电处理,或者断网处理,或者关掉服务等,都能正常进行故障转移,而且故障时间控制在3秒内,就可以进行切换。


 


 




其实用keepalived也同样可以实现高可用性的~


 




keepalived变为主节点的时候运行的脚本


 






  1. #!/bin/bash 



  2. while : 


  3. do 



  4. drbd_status
    =`service drbd status|grep Inconsistent | gawk '{print $4}'` 



  5. if [ -n "$drbd_status" ]; then 


  6. echo "drbd's status is inconsisten,waiting..." 


  7. sleep 1 


  8. else 


  9. echo "drbd's status is ok,namenode will be changing" 


  10. break 


  11. fi 


  12. done 


  13.  


  14. while : 


  15. do 


  16. if [ -d /data/mysql ]; then 


  17. #service mysqld stop 


  18. service mysqld start 


  19. break 


  20. else 


  21. drbdadm primary r0 


  22. mount /dev/drbd0 /data 


  23. sleep 1 


  24. service mysqld start 


  25. fi 


  26. done 


  27.  


  28.  



  29. drbd_status
    =`service drbd status|grep StandAlone | gawk '{print $2}'` 



  30. if [ -n "$drbd_status" ]; then 



  31. vip_status
    =`ip addr |grep eth0|grep "192.168.100.7"` 



  32.    if [[ ! -z ${vip_status} ]];then 


  33.      for i in $(seq 3) 


  34.        do  


  35.         drbdadm connect all 


  36.         sleep 2 


  37.      done 


  38.    fi 


  39. fi 





keepalived变为备用机器的时候,运行的脚本



 






  1. #!/bin/bash 



  2. if [ -d /data/mysql ];then 


  3. service mysqld stop 


  4. pkill -9 mysql 


  5. sleep 1 


  6. fuser -ck /data/ 


  7. umount -l /dev/drbd0 


  8. drbdadm secondary all 


  9. else 



  10. drbd_status
    =`service drbd status|grep StandAlone | gawk '{print $2}'` 



  11. if [ -n "$drbd_status" ]; then 


  12. drbdadm secondary all 


  13.  


  14. fi 


  15. fi 


 


 


 


 


 




推荐阅读
  • 目录Atlas介绍Atlas部署Atlas基本管理Atlas结合MHA故障恢复读写分离建议Atlas介绍Atlas是由Qihoo360Web平台部基础架构团队开发维护的一个基于My ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
  • 负载均衡基础概念与技术解析
    随着互联网应用的不断扩展,用户流量激增,业务复杂度显著提升,单一服务器已难以应对日益增长的负载需求。负载均衡技术应运而生,通过将请求合理分配到多个服务器,有效提高系统的可用性和响应速度。本文将深入探讨负载均衡的基本概念和技术原理,分析其在现代互联网架构中的重要性及应用场景。 ... [详细]
  • 2019年后蚂蚁集团与拼多多面试经验详述与深度剖析
    2019年后蚂蚁集团与拼多多面试经验详述与深度剖析 ... [详细]
  • 黄聪:MySQL主从复制配置,实现高效读写分离
    大型网站为应对高并发访问,不仅需要在前端实现分布式负载均衡,还需在数据业务和访问层采取有效措施。采用传统的数据结构已无法满足需求,通过配置MySQL主从复制,可实现高效的读写分离,显著提升系统性能和稳定性。 ... [详细]
  • Linux负载均衡LVS(IPVS)
    一、LVS简介LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在已经是Linux ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • 如何在主服务器响应变慢时,自动切换至备用服务器地址以确保服务连续性
    在主服务器响应速度下降时,如何通过编程实现自动切换至备用服务器地址,以确保服务的连续性和稳定性。本文将介绍一种基于PHP和MySQL的解决方案,通过监测主服务器的响应时间,当检测到延迟过高时,自动切换至备用服务器接口,从而保障系统的高可用性。 ... [详细]
  • 深入了解 Azure Standard Load Balancer 的核心功能与应用场景
        Azure的负载均衡器就不需要多说了,属于很基础的组件了,各个云的LB功能其实也不太一样,Azure的4层LB属于相对来说功能比较基础的,不过好处是这东西也不要钱,不过Az ... [详细]
  • Dubbo的集群容错策略正常情况下,当我们进行系统设计时候,不仅要考虑正常逻辑下代码该如何走,还要考虑异常情况下代码逻辑应该怎么走。当服务 ... [详细]
  • 目录结构如下:Nginx基础知识NginxHTTP服务器的特色及优点Nginx的主要企业功能Nginx作为web服务器的主要应用场景包括:Nginx的安装安装环境 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 护墙_搭建LVS负载均衡NAT和DR模式
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了搭建LVS负载均衡NAT和DR模式相关的知识,希望对你有一定的参考价值。 ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
author-avatar
Sheen2602906613
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有