一、定义

通常说的「双机热备」是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。

二、原理

Keepalived的工作原理是VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议。在VRRP中有两组重要的概念:VRRP路由器和虚拟路由器,主控路由器和备份路由器。

VRRP路由器是指运行VRRP的路由器,是物理实体,虚拟路由器是指VRRP协议创建的,是逻辑概念。一组VRRP路由器协同工作,共同构成一台虚拟路由器。 Vrrp中存在着一种选举机制,用以选出提供服务的路由即主控路由,其他的则成了备份路由。当主控路由失效后,备份路由中会重新选举出一个主控路由,来继续工作,来保障不间断服务。

三、架构环境

MASTER:192.168.1.40

BACKUP:192.168.1.41

VIP:192.168.1.44 (虚拟IP)

四、配置

1、配置两台Mysql主主同步

编辑my.cnf

# vi /etc/my.cnf

[mysqld]

server-id = 1#backup这台设置为2

log-bin=mysql-bin

binlog-ignore-db =mysql,information_schema #忽略写入binglog日志的库

auto-increment-increment = 2#字段变化增量值

auto-increment-offset = 1#初始字段ID为1

slave-skip-errors = all #忽略所有复制产生的错误

# /etc/init.d/mysqld restart

查看下MASTER的binglog日志和pos值的位置

查看下BACKUP的binglog日志和pos值的位置

master配置如下:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.41' IDENTIFIED BY '123456';

mysql>flush privileges;

mysql>change master to-> master_host='192.168.1.41',-> master_user='root',-> master_password='123456',-> master_log_file='mysql-bin.000002',-> master_log_pos=120;

mysql> start slave;

backup配置如下:

mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.40' IDENTIFIED BY '123456';

mysql>flush privileges;

mysql>change master to-> master_host='192.168.1.40',-> master_user='root',-> master_password='123456',-> master_log_file='mysql-bin.000002',-> master_log_pos=120;

mysql> start slave;

主主同步配置完成,查看同步状态Slave_IO和Slave_SQL是YES说明主主同步成功。两边都要YES。如果一边yes,另外一边识别不到pos就无法同步

master插入数据如下:

在backup查看是否同步:

可以看到已经成功同步过去,同样在backup插入到user表数据,一样同步过去,双主就做成功了。

主主配置常见报错:

注:如果其中一边提示连接中,关闭防火墙即,或者对应IP不对,请注意查看salve的IP。其中一个显示NO,查底下报错,显示por值匹配不到的,则说明你其中一边的bin-log不一致,关闭salve,重新配置即可。

2、配置keepalived实现热备

keepalived编译配置文件

# vi /etc/keepalived/keepalived.conf! Configuration File forkeepalived

global_defs {

notification_email {11111111@qq.com

}

notification_email_from Alexandre.Cassen@firewall.loc

smtp_server127.0.0.1smtp_connect_timeout30router_id MYSQL_HA

}! Configuration File forkeepalived

global_defs {

notification_email {11111111@qq.com

}

advert_int1nopreempt

authentication {

auth_type PASS

auth_pass1111}

virtual_ipaddress {192.168.1.44}

}

}

virtual_server192.168.1.44 3306{

delay_loop2#lb_algo rr #LVS算法,用不到,我们就关闭了

#lb_kind DR #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL

persistence_timeout50#同一IP的连接60秒内被分配到同一台真实服务器

protocol TCP

real_server192.168.0.40 3306{ #检测本地mysql,backup也要写检测本地mysql

persistence_timeout50#同一IP的连接60秒内被分配到同一台真实服务器

protocol TCP

real_server192.168.0.40 3306{ #检测本地mysql,backup也要写检测本地mysql

#lb_kind DR #LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL

persistence_timeout50#同一IP的连接60秒内被分配到同一台真实服务器

protocol TCP

real_server192.168.0.40 3306{ #检测本地mysql,backup也要写检测本地mysql

weight3notify_down/etc/keepalived/mysql.sh #当mysq服down时,执行此脚本,杀死keepalived实现切换

TCP_CHECK {

connect_timeout3#连接超时

nb_get_retry3#重试次数

delay_before_retry3#重试间隔时间

}

}

采用keepalived作为高可用方案时,两个节点最好都设置成BACKUP模式,避免因为意外情况下(比如脑裂)相互抢占导致往两个节点写入相同数据而引发冲突;

backup服务器只修改priority为90、nopreempt不设置、real_server设置本地IP。

五、测试高可用性

1、通过Mysql客户端通过VIP连接,看是否连接成功。

2、停止master这台mysql服务,是否能正常切换过去,可通过ip addr命令来查看VIP在哪台服务器上。

当master数据库宕的时候,VIP就会自动切换到另一台上,实现主主自动切换。远程连接数据库的虚拟IP是可以连接的,实现应用切换的效率。部署应用的时候配置VIP即可共享数据库资源。

3.注意:当宕库恢复的时候,要启动keepalived,否则VIP无法自动切换回来。

mysql双主故障自动切换_mysql双主热备宕机自动切换相关推荐

  1. 服务器宕机自动dns,有哪些同时支持智能解析和宕机自动切换的DNS服务?

    RT 可以支持按区域.运营商线路智能解析,服务器宕机自动切换解析. 免费或者价格不太高的.  目前了解到华为云完全免费,唯独没有宕机监控. DNSPOD如果想实现上述功能,套餐价格不菲-- 求大佬们推 ...

  2. mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录

    MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...

  3. mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录

    MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...

  4. mysql 主键 sql语句_Mysql 增加主键或者修改主键的sql语句操作

    添加表字段 alter table table1 add transactor varchar(10) not null; alter table table1 add id int unsigned ...

  5. mysql设置主键的作用_mysql设置主键有什么用

    mysql设置主键的作用是:1.唯一地标识表中的每一行,通过它可强制表的实体完整性:2.主要是用于其他表的外键关联,以及本记录的修改与删除. [相关学习推荐:mysql教程] mysql设置主键的作用 ...

  6. mysql双机热备数据库_MySQL 数据库双机热备方案

    标签: 转载:http://www.microcolor.cn/solutions/80.html 本手册主要介绍通过使用 MicroColor ServHAMirror/Cluster 软件在Win ...

  7. mysql 热切换_热备服务器中,切换master中切换SQL

    在master出现故障,需要一个热备服务器及时切换的时候,原先master下面的slave也需要及时的进行切换到热备的那台新master服务器上 在master出现故障,需要一个热备服务器及时切换的时 ...

  8. Linux切换slave,热备服务器中,切换master中切换SQL

    在master出现故障,需要一个热备服务器及时切换的时候,原先master下面的slave也需要及时的进行切换到热备的那台新master服务器上,其切换的基本思路为: slave和备份服务器在完全相同 ...

  9. java tomcat 监控_java程序监控tomcat实现项目宕机自动重启并发送邮件提醒

    最近由于老项目频繁挂掉,由于项目经过多批人之手,短时间难以定位问题,所以只好写一个监控程序. 时间比较紧半天时间,而且水平有限大神勿喷,有好的方法还请赐教. 1.问题描述:分两种情况1.1.tomca ...

最新文章

  1. php会话的销毁和退出,销毁PHP会话
  2. 一文揭秘领域驱动设计(DDD):领域和子域!
  3. python加密库用哪个好_Python的加密库入门!
  4. linux shell 字符串比较相等、不相等
  5. .. 相对目录php,php 计算两个目录的相对路径
  6. linux怎么切换为oracle用户权限,linux肿么给oracle中用户权限
  7. 鼠标悬停 显示遮罩层
  8. conda创建虚拟环境,拥有多个Anconda版本
  9. 面试绕不开的 CAP 理论,这篇文章帮你搞定!
  10. springboot使用netty容器_Spring Boot 2 实战:使用 Undertow 来替代Tomcat
  11. strcpy(d,s)的溢出问题
  12. C#编写的打印排版控件拖拽软件
  13. 我是 SPI,我让框架更加优雅了!
  14. echarts树图tree制作家谱教程
  15. Python制作关键字云+情感分析图
  16. tensorflow的安装和求解泊松方程
  17. tensorflow官网
  18. 用js实现返回上一步操作
  19. Coursera | Andrew Ng (02-week-1-1.12)—梯度的数值逼近
  20. 小指数rsa 多线程版writeup

热门文章

  1. java装箱_谈谈Java的自动装箱和拆箱
  2. 物联网大数据平台的主要功能和特点
  3. MySQL 中间件汇总比较
  4. 2020.10.31文献2、3阅读:何川老师2篇文章《隧道穿越断层破碎带+地震》
  5. python求小于n的所有素数_快速找出N以内的所有素数解法,python版本。这个应该是最快的了...
  6. SQL数据库单行注释与多行注释
  7. MySQL基于时间点恢复和快照恢复实例
  8. win7旗舰版64位系统重装步骤
  9. GP61-4-A比例电磁铁配套放大器RT-PSDM2
  10. MFC常见错误Qualcomm 开启强发 PowerMeter时