mysql双主故障自动切换_mysql双主热备宕机自动切换
一、定义
通常说的「双机热备」是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。
二、原理
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双主热备宕机自动切换相关推荐
- 服务器宕机自动dns,有哪些同时支持智能解析和宕机自动切换的DNS服务?
RT 可以支持按区域.运营商线路智能解析,服务器宕机自动切换解析. 免费或者价格不太高的. 目前了解到华为云完全免费,唯独没有宕机监控. DNSPOD如果想实现上述功能,套餐价格不菲-- 求大佬们推 ...
- mysql+keepalived必须要lvs吗_MySQL 双主热备 + LVS + Keepalived 高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- mysql+keepalived必须要lvs吗_Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障.然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负 ...
- mysql 主键 sql语句_Mysql 增加主键或者修改主键的sql语句操作
添加表字段 alter table table1 add transactor varchar(10) not null; alter table table1 add id int unsigned ...
- mysql设置主键的作用_mysql设置主键有什么用
mysql设置主键的作用是:1.唯一地标识表中的每一行,通过它可强制表的实体完整性:2.主要是用于其他表的外键关联,以及本记录的修改与删除. [相关学习推荐:mysql教程] mysql设置主键的作用 ...
- mysql双机热备数据库_MySQL 数据库双机热备方案
标签: 转载:http://www.microcolor.cn/solutions/80.html 本手册主要介绍通过使用 MicroColor ServHAMirror/Cluster 软件在Win ...
- mysql 热切换_热备服务器中,切换master中切换SQL
在master出现故障,需要一个热备服务器及时切换的时候,原先master下面的slave也需要及时的进行切换到热备的那台新master服务器上 在master出现故障,需要一个热备服务器及时切换的时 ...
- Linux切换slave,热备服务器中,切换master中切换SQL
在master出现故障,需要一个热备服务器及时切换的时候,原先master下面的slave也需要及时的进行切换到热备的那台新master服务器上,其切换的基本思路为: slave和备份服务器在完全相同 ...
- java tomcat 监控_java程序监控tomcat实现项目宕机自动重启并发送邮件提醒
最近由于老项目频繁挂掉,由于项目经过多批人之手,短时间难以定位问题,所以只好写一个监控程序. 时间比较紧半天时间,而且水平有限大神勿喷,有好的方法还请赐教. 1.问题描述:分两种情况1.1.tomca ...
最新文章
- php会话的销毁和退出,销毁PHP会话
- 一文揭秘领域驱动设计(DDD):领域和子域!
- python加密库用哪个好_Python的加密库入门!
- linux shell 字符串比较相等、不相等
- .. 相对目录php,php 计算两个目录的相对路径
- linux怎么切换为oracle用户权限,linux肿么给oracle中用户权限
- 鼠标悬停 显示遮罩层
- conda创建虚拟环境,拥有多个Anconda版本
- 面试绕不开的 CAP 理论,这篇文章帮你搞定!
- springboot使用netty容器_Spring Boot 2 实战:使用 Undertow 来替代Tomcat
- strcpy(d,s)的溢出问题
- C#编写的打印排版控件拖拽软件
- 我是 SPI,我让框架更加优雅了!
- echarts树图tree制作家谱教程
- Python制作关键字云+情感分析图
- tensorflow的安装和求解泊松方程
- tensorflow官网
- 用js实现返回上一步操作
- Coursera | Andrew Ng (02-week-1-1.12)—梯度的数值逼近
- 小指数rsa 多线程版writeup
热门文章
- java装箱_谈谈Java的自动装箱和拆箱
- 物联网大数据平台的主要功能和特点
- MySQL 中间件汇总比较
- 2020.10.31文献2、3阅读:何川老师2篇文章《隧道穿越断层破碎带+地震》
- python求小于n的所有素数_快速找出N以内的所有素数解法,python版本。这个应该是最快的了...
- SQL数据库单行注释与多行注释
- MySQL基于时间点恢复和快照恢复实例
- win7旗舰版64位系统重装步骤
- GP61-4-A比例电磁铁配套放大器RT-PSDM2
- MFC常见错误Qualcomm 开启强发 PowerMeter时