keepalive

  • 类似3/4/7层交换机制的软件,也就是平时说的第三层、第四层、第七层交换
  • 作用是检测web服务器的状态,如果有一台web服务器、mysql服务器宕机、或工作出现故障,keepalived检测到问题后,会将有故障的web服务器或者mysql服务器从系统中剔除
  • 当服务工作正常后,keepalived自动将web、mysql服务加入到当前的服务群中
  • 切换过程全部自动完成,不需要人工干涉
  • 人工任务只是修复有故障的web和mysql服务

keepalived安装配置

tar zxf keepalived-1.2..tar.gz
cd keepalived-1.2. &&./configure --with-kernel-dir=/usr/src/kernels/2.6.-.el5-i686 &&make && make install
DIR=/usr/local/
cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived
cp $DIR/sbin/keepalived /usr/sbin/

修改master配置 vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
notification_email {
mailname@.com
}
notification_email_from mailname@.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_DEVEL
}
# VIP1
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id
priority
advert_int
nopreempt
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.33.100
}
}
virtual_server 192.168.33.100 {
delay_loop
lb_algo wrr
lb_kind DR
persistence_timeout
protocol TCP
real_server 192.168.33.10 {
weight
notify_down /data/sh/mysql.sh
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}

修改slave配置

  • 只需要将realserver的IP改成real_server 192.168.33.11
  • 优先级从100改成90

脚本内容

pkill keepalived

查看ipvs模块

modprobe ipvs

加载ipvs模块

modprobe ip_vs

lsmod|grep ip_vs

结论

  • 使用keepalived的抢占模式
  • 主DB挂了,切到backup上
  • 主DB恢复了,自动切回master上---很可能出现DB问题,数据写了slave上,又写了master上
  • 如果主上面的keepalived挂了(虽然几率小),master的db没挂,也切换到slave上,万一异步数据没同步(几率也低),数据也会不一致
  • 这种方式有使用场景么?

mysql运维入门5:MySQL+kepalived高可用架构的更多相关文章

  1. mysql运维入门4:索引、慢查询、优化

    MySQL索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都是以B-树的形式保存 如果没有索引,执行查询时,MySQL必须从第一个记录开始整表扫描,知道查询到符合要求的记录,记录越大,花费时 ...

  2. mysql运维入门2:主从架构

    mysql主从原理 随着访问量的增加,数据库压力的增加,需要对msyql进行优化和架构改造,优化方法有: 高可用 主从复制 读写分离 拆分库 拆分表 原理 异步复制过程 master开启bin-log ...

  3. mysql运维入门1:基础及备份还原

    存储引擎 myisam 表强调的是性能 执行速度比innodb类型更快 不提供事务支持 如果执行大量的select操作,是首选 支持表锁,不支持行锁 innodb 提供事务支持.外键等高级数据库功能 ...

  4. 京东云开发者|IoT运维 - 如何部署一套高可用K8S集群

    环境 准备工作 配置ansible(deploy 主机执行) # ssh-keygen # for i in 192.168.3.{21..28}; do ssh-copy-id -i ~/.ssh/ ...

  5. mysql运维入门3:MyISAM和InnoDB

    myisam 5.1的默认存储类型 基于传统的ISAM类型,Indexed Sequential Access Method,有索引的顺序访问方法 存储记录文件的标准方法 不是事务安全,不支持外键 表 ...

  6. mysql运维入门6:MySQL读写分离

    Amoeba 以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy 集中想用应用的请求,根据用户事先设置的规则,将SQL请求发送到特定的数据库上执行 基于此可以实现负载均衡.读写分离 ...

  7. (转)linux运维必会MySQL企业面试题

    linux运维必会MySQL企业面试题  老男孩教育运维班全体学员MySQL必会企业面试题最实战.最细致.最落地的运维实训基地,老男孩教育连续多年国内平均就业工资最高! 数据库的重要性是所有技术里最核 ...

  8. 【转】单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    此文是根据杨尚刚在[QCON高可用架构群]中,针对MySQL在单表海量记录等场景下,业界广泛关注的MySQL问题的经验分享整理而成,转发请注明出处. 杨尚刚,美图公司数据库高级DBA,负责美图后端数据 ...

  9. [转载] 单表60亿记录等大数据场景的MySQL优化和运维之道 | 高可用架构

    原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209406532&idx=1&sn=2e9b0cc02bdd ...

随机推荐

  1. 2019-2020-1 20199326《Linux内核原理与分析》第九周作业

    进程的切换和系统的一般执行过程 中断 中断在本质上都是软件或者硬件发生了某种情形而通知处理器的行为,处理器进而停止正在运行的指令流(当前进程),对这些通知做出相应反应,即转去执行预定义的中断处理程序( ...

  2. udp包最大数据长度是多少

    因为udp包头有2个byte用于记录包体长度. 2个byte可表示最大值为: 2^16-1=64K-1=65535    udp包头占8字节, ip包头占20字节, 65535-28 = 65507 ...

  3. 企业级 Harbor 镜像仓库

    Harbor是由VMWare公司开源的容器镜像仓库.事实上,Harbor是在Docker Registry上进行了相应 的企业级扩展,从而获得了更加广泛的应用,这些新的企业级特性包括:管理用户界面,基 ...

  4. Python3 注释和运算符

    Python3 注释 确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释: Python中单行注释以 # 开头,例如:: # 这是一个注释 print(&qu ...

  5. c语言----- 冒泡排序 for while do-while 递归练习

    1. 冒泡排序简介(默认从小到大排序) 核心思想:只比较相邻的两个元素,如果满足条件就交换    5 8 2 1 6 9 4 3 7 0 目标:0 1 2 3 4 5 6 7 8 9 第一次排序: 5 ...

  6. 【JAVA基础】05 Java语言基础:数组

    1. 数组概述和定义格式说明 为什么要有数组(容器) 为了存储同种数据类型的多个值 数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引用 ...

  7. 网络传输 socket

    一.Socket语法及相关 前言:osi七层模型: 第七层:应用层.     各种应用程序协议,如HTTP,FTP,SMTP,POP3. 第六层:表示层.     信息的语法语义以及它们的关联,如加密 ...

  8. 重识TCP/IP协议族与HTTP基础

    不忘初心 砥砺前行, Tomorrow Is Another Day ! 本文概要: TCP/IP协议族的网络分层 TCP三次握手四次挥手 Http简介 报文结构 Http的请求方法及状态码 常用的H ...

  9. [软件共享]将数据库中的数据导出为SQL脚本

    可以直接将数据库中的数据导出为脚本,并可以自己设置过滤条件.使用方法很简单,不在多说了.下面是软件截图.123 下载:http://files.cnblogs.com/pw/mssql2.rar

  10. Docker docker-compose 配置lnmp开发环境

    1.安装docker yum -y install dockersystemctl start dockersystemctl enable docker 安装docker-compose https ...