分类: MySQL 架构设计 2013-05-08 01:40
5361人阅读 评论(8)
收藏
举报

㈠ 实战环境

服务器名· IP OS MySQL
odd.example.com 192.168.1.116 RHEL-5.8 5.5.16
even.example.com 192.168.1.115 RHEL-5.8 5.5.16

㈡ 方案优缺点

      

      优点

      

      ● 安装配置简单, 实现方便,高可用效率好,可以根据服务与系统的可用性多方面进行切换

      ● 可以将写 VIP 和读 VIP 分别进行设置,为读写分离做准备

      ● 可以在后面添加多个从服务器,并做到负载均衡

      

      缺点

      

      ● 在启动或者恢复后会立即替换掉定义的 sorry_server

         因此如果要实现指定条件替换或者不替换需要通过其他方式实现,比如:临时更改MySQL的端口等

      ● 扩展不是很方便

      ● 切换需要 1s 左右的时间

㈢ 方案适用场景

      

      这个方案适用于只有两台数据库服务器并且还没有实现数据库的读写分离的情况、读和写都配置 VIP

      这个方案能够便于单台数据库的管理维护以及切换工作

      比如进行大表的表结构更改、数据库的升级等都是非常方便的

㈣ 方案架构图

㈤ 部署步骤

   

   ⑴ MySQL 安装

   

      请查阅我之前的一篇文章:MySQL 5.5 三大安装方式:【二进制、源代码编译 和 RPM 包】 安装步骤及优缺点比较

⑵ MySQL主主同步配置

      

      这也请查阅我之前的文章哈:MySQL 主主同步配置

⑶ LVS 安装

   

     在ODD EVEN:

      

       # wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

       # ln -s /usr/src/kernels/2.6.18-308.el5xen-i686/  /usr/src/linux

       # tar -zxv -f ipvsadm-1.24.tar.gz

       # cd ipvsadm-1.24

       # make

       # make install

   

   ⑷ KeepAlived安装

   

      在ODD EVEN:

   

       # wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz

       # tar -zxv -f keepalived-1.1.19.tar.gz

       # cd keepalived-1.1.19

       # ./configure --prefix=/usr/local/keepalived

       # make

       # make install

       # cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

       # cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

       # cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

       # mkdir /etc/keepalived

       

       

   ⑸ KeepAlived配置

   

     在 ODD

  1. global_defs {
  2. notification_email {
  3. linwaterbin@gmail.com
  4. }
  5. notification_email_from bychjzh@gmail.com
  6. smtp_server smtp.gmail.com
  7. smtp_connect_timeout 30
  8. router_id LVS1
  9. }
  10. vrrp_sync_group test {
  11. group {
  12. loadbalance
  13. }
  14. }
  15. vrrp_instance loadbalance {
  16. state BACKUP
  17. interface eth0
  18. lvs_sync_daemon_inteface eth0
  19. virtual_router_id 51
  20. priority 150
  21. advert_int 1
  22. authentication {
  23. auth_type PASS
  24. auth_pass 1111
  25. }
  26. virtual_ipaddress {
  27. 192.168.1.128 dev eth0 label eth0:1
  28. }
  29. }
  30. virtual_server 192.168.1.128 3306 {
  31. delay_loop 6
  32. lb_algo rr
  33. lb_kind DR
  34. persistence_timeout 20
  35. protocol TCP
  36. sorry_server 192.168.1.115 3306
  37. real_server 192.168.1.116 3306 {
  38. weight 3
  39. TCP_CHECK {
  40. connect_timeout 3
  41. nb_get_retry 3
  42. delay_before_retry 3
  43. connect_port 3306
  44. }
  45. }
  46. }

在EVEN:

   

     大部分都和 ODD 一样、只有 2 处:

   

     ● state BACKUP

   

     ● priority 150

⑹ ODD EVEN 的 realsever 配置

   

     在 ODD EVEN 上

  1. #!/bin/bash
  2. # description: Config realserver lo and apply noarp
  3. SNS_VIP=192.168.1.128
  4. /etc/rc.d/init.d/functions
  5. case "$1" in
  6. start)
  7. ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
  8. /sbin/route add -host $SNS_VIP dev lo:0
  9. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  10. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  11. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  12. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  13. sysctl -p >/dev/null 2>&1
  14. echo "RealServer Start OK"
  15. ;;
  16. stop)
  17. ifconfig lo:0 down
  18. route del $SNS_VIP >/dev/null 2>&1
  19. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  20. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
  21. echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
  22. echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
  23. echo "RealServer Stoped"
  24. ;;
  25. *)
  26. echo "Usage: $0 {start|stop}"
  27. exit 1
  28. esac
  29. exit 0

⑺ 启动 KeepAlived和 realsever

   

      在 ODD EVEN

   

      # /etc/rc.d/init.d/realserver.sh start

      # /etc/rc.d/init.d/keepalived start

      # echo “/etc/rc.d/init.d/realserver.sh start” >> /etc/rc.local

      # echo “/etc/rc.d/init.d/keepalived start” >> /etc/rc.local

     

   配置到这边大概都已经差不多了、接下来看看测试

   

   

   

   ㈥ 简单测试

   

      停掉ODD MySQL Server 、看看能否自动却换到 sorry_server

  1. 停止前:
  2. [root@odd keepalived]# ipvsadm -ln
  3. IP Virtual Server version 1.2.1 (size=4096)
  4. Prot LocalAddress:Port Scheduler Flags
  5. -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  6. TCP  192.168.1.128:3306 rr persistent 20
  7. -> 192.168.1.116:3306           Local   3      0          0
  8. 停止:
  9. [mysql@odd ~]$ mysqladmin shutdown
  10. 130508 00:53:50 mysqld_safe mysqld from pid file /home/mysql/mysql/data/odd.example.com.pid ended
  11. [1]+  Done                    mysqld_safe
  12. 停止后:
  13. [root@odd keepalived]# ipvsadm -ln
  14. IP Virtual Server version 1.2.1 (size=4096)
  15. Prot LocalAddress:Port Scheduler Flags
  16. -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
  17. TCP  192.168.1.128:3306 rr persistent 20
  18. -> 192.168.1.115:3306           Route   1      0          0
  19. 成功!!

5
0
主题推荐
架构
mysql 数据库服务器 负载均衡 数据库
猜你在找
LINUX EVAL命令
SLF4J 简单日志门面 介绍和使用
在mysql的replicatin环境中masterslave常用参数
mysq的主从复制备份还原
利用Haffman 算法实现对ascii字符文件的压缩
discuz X3数据库表结构
set global sql_slave_skip_counter1
GlusterFS RAID1+RAID0方式的搭建replicate与unify混用
mysql做主从复制成功配置案例
varnish配置

MySQL + KeepAlived + LVS 单点写入主主同步高可用架构实验的更多相关文章

  1. keepalived + lvs marster 与 backup 之间的 高可用

    简介 keepalived 是linux下一个轻量级的高可用解决方案,它与HACMP实现功能类似,都可以实现服务或者网络的高可用,但是又有差别:hacmp是一个专业的.功能完善的高可用软件,它提供了H ...

  2. Mysql双主互备+keeplived高可用架构介绍

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  3. MySQL高可用架构之Keepalived+主从架构部署

    针对目前公司的数据库架构要做统计规划和调整,所以针对不同的业务环境要选择合适的架构就比较重要,同时作为运维人员又要考虑到维护的便捷性(不能做过多架构维护),最终停留在mha+vip/主从+vip/my ...

  4. Mysql双主互备+keeplived高可用架构(部分)

    一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种 ...

  5. Oracle Compute云快速搭建MySQL Keepalived高可用架构

    最近有个客户在测试Oracle Compute云,他们的应用需要使用MySQL数据库,由于是企业级应用一定要考虑高可用架构,因此有需求要在Oracle Compute云上搭建MySQL高可用集群.客户 ...

  6. 数据库高可用架构(MySQL、Oracle、MongoDB、Redis)

    一.MySQL MySQL小型高可用架构 方案:MySQL双主.主从 + Keepalived主从自动切换   服务器资源:两台PC Server 优点:架构简单,节省资源 缺点:无法线性扩展,主从失 ...

  7. [转]数据库高可用架构(MySQL、Oracle、MongoDB、Redis)

    一.MySQL   MySQL小型高可用架构 方案:MySQL双主.主从 + Keepalived主从自动切换 服务器资源:两台PC Server 优点:架构简单,节省资源 缺点:无法线性扩展,主从失 ...

  8. MySQL高可用架构-MMM环境部署记录

    MMM介绍MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序.MMM使用Perl语言开发,主要用来监控和管理 ...

  9. (5.1)mysql高可用系列——高可用架构方案概述

    关键词:mysql高可用概述,mysql高可用架构 常用高可用方案 20190918 现在业内常用的MySQL高可用方案有哪些?目前来说,用的比较多的开源方案分内置高可用与外部实现,内置高可用有如下: ...

随机推荐

  1. redis 慢查询日志

    说明:针对慢查询日志,可以设置两个参数,一个是执行时长,单位为微秒,另一个是慢查询日志的长度.如果超过该长度,当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除. 编辑配置文件redis. ...

  2. git 提交和下载代码

    在github下需先 New repository 下载:进入程序工程目录下 如 cd f: cd ./Program\ Files/eclipse/workspace/IMoocMusic/ git ...

  3. Webpack+React+ES6 最新环境搭建和配置(2017年)

    刚刚学习React,发现React在ES6下的语法才是本体,结合ES6新的语言特性,使组件化开发显得更加直观.而且现在的Angular2也开始使用支持强类型的TypeScript,转译(transpi ...

  4. Python面试题之functools模块

    文档 地址 functools.partial 作用: functools.partial 通过包装手法,允许我们 "重新定义" 函数签名 用一些默认参数包装一个可调用对象,返回结 ...

  5. Web安全学习笔记之Nmap脚本使用指南

    nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统.它是网络管理员必用的软件之一,以及用以评估网络系统安全. —— 来自百 ...

  6. 20145335郝昊《Java程序设计》第2周学习总结

    20145335郝昊<Java程序设计>第2周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long整 ...

  7. OAuth客户端调用

    public class OAuthClientTest { private HttpClient _httpClient; public OAuthClientTest() { _httpClien ...

  8. Xampp mysql启动

    因为最近项目要用到php,需要集成Xampp环境,但是并没有接触过php,从官网下载了Xampp后,基本上就是傻瓜式安装了, 完成安装界面如下: 点击Apache的start可以正常启动,点击MYSQ ...

  9. asp.net core + log4net+exceptionles+DI

    参考了ABP的代码,我也用依赖注入的原则,设计了日志模块. 与abp不同之处在于:1)DI容器使用的是.net core自带的注入容器,2)集成了excetpionless日志模块,3)不依赖于abp ...

  10. nlp基本知识点(不断更新)

    1.精确率与召回率 召回率也称为查全率,指的是:你查询到的相关数目/(你查询到的相关的数目+你没有查询到的相关的数目). 精确率: A/A+B 召回率:A/A+C 再比如: 我 是 中国人 这里正确的 ...