分类: 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. hihocoder1479 三等分

    地址:http://hihocoder.com/problemset/problem/1479 题目: 三等分 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近 ...

  2. JAVA学习笔记之JAVA 对象引用以及赋值

      关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...

  3. vmware基于主机模式实现上网(win10)

    首先查看本机win10的网络情况: 网卡VMnet1就是主机模式的网卡,确认本机win10共享了网络给vmnet1这张网卡,如果没有共享,那么进行设置: 进行上述设置,然后在vmnet1网卡上设置ip ...

  4. git失败案例

    哈哈哈,git终于能push了,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 我怀疑是系统版本的问题,之前一直不没能pu ...

  5. MR案例:WordCount改写

    请参照wordcount实现一个自己的MapReduce,需求为:     a. 输入文件格式:        xxx,xxx,xxx,xxx,xxx,xxx,xxx     b. 输出文件格式:   ...

  6. Mysql批量更新速度慢的解决方案

    批量更新的时候不能用子查询 where shop_orderform_id in( select shop_orderform_id from `shop_orderform` where user_ ...

  7. Stm32F103面向对象编程之GPIO

    STM32F103 GPIO面向对象变成实例 创建一个GPIO对象 GpioClass gStateLed = NEW_GPIO(C, 0, GPIO_Mode_Out_PP); 初始化对象 Gpio ...

  8. contos LINUX搭建LAMP笔记

    LINUX搭建LAMP笔记 .YUM:Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于R ...

  9. cocos2d-js入门一

    决定搞cocos2d-js,但发现官网已经没有独立的js了,lua,现在全部整合到cocos2d-x中了. win7+cocos2d-x 3.8 由于之前搭建了vs2012 +python平台 ,此时 ...

  10. RabbitMQ :常用命令与图形管理及用户权限

    RabbitMQ 安装 安装 RabbitMQ 前要先安装 Erlang,可以去 Erlang 官网下载,接着去 RabbitMQ 官网下载安装包,解压缩即可 Mac 用户可以通过 HomeBrew ...