关于mysql主从架构master宕机后,请求转移问题解决办法
mysql架构:一主一从
问题一:有两台mysql数据库,已做好主从。如果运行某一天master服务器mysql故障导致前端请求无法处理怎么办?
答:将前端需要数据库处理的请求转移到slave机上。
问题二:怎么转移?
答:
方法一:如果业务比较简单,只通过一个或很少的数据库连接文件连接后台mysql数据库,可直接修改连接文件代码的连接IP为slave机IP。
方法二:如果主从架构比较复杂,可将其升级为MHA架构自动实现故障转移,具体见:https://www.cnblogs.com/dannylinux/p/8033318.html
方法三:如果业务比较复杂,涉及很多连接问题,去手动修改代码连接文件很麻烦。这时就可以通过iptables防火墙转发规则实现了。如下:
前端服务器:
公网IP:12.1.1.1
提供WEB服务
master机:
公网IP:无
内网IP:13.1.1.1
系统:云服务器Centos 7
mysqld端口:3306
slave机:
公网IP:无
内网IP:13.1.1.2
系统:云服务器Centos 7
mysqld端口:3306
实验开始
两台服务器数据主从运行顺利,slave机能及时同步数据。假设突发情况导致master服务器宕机。
前端web服务器上
1.开启转发
vim /etc/sysctl.conf
net.ipv4.ip_forward =
2.添加iptables防火墙端口转发规则
iptables -t nat -A PREROUTING -p tcp --dport -j DNAT --to-destination 13.1.1.2:
#路由前,将所有对3306端口的请求都转发到13.1.1.2的3306端口 iptables -t nat -A POSTROUTING -d 13.1.1.2 -p tcp --dport -j SNAT --to-source 12.1.1.1
#路由后,将IP为内网13.1.1.,端口为3306的返回请求源地址转换为公网IP12.1.1.
解析:
PREROUTING
当外网的数据包进入到内网时,需要修改数据包中的公网 IP 为内网的主机 IP,这种 DNAT 的行为规则在 PREROUTING 链里添加。
POSTROUTING
包含有SNAT源地址转换的行为规则,把内网地址转换成公网地址。
SNAT 和 DNAT:
SNAT 和 DNAT 是 iptables 中使用 NAT 规则相关的的两个重要概念。
1).内网主机访问外网而经过路由时,源 IP 会发生改变,这种变更行为就是 SNAT;
2).外网的数据经过路由发往内网主机时,数据包中的目的 IP (路由器上的公网 IP) 将修改为内网 IP,这种变更行为就是 DNAT 。
PREROUTING 、 POSTROUTING与SNAT 、DNAT对应关系:
SNAT 操作对应链 POSTROUTING
DNAT 操作对应链 PREROUTING
3.如果master服务恢复,再重新同步数据即可
关于mysql主从架构master宕机后,请求转移问题解决办法的更多相关文章
- 实验:zk master宕机后,临时节点在新的master上是否存在,结果出人意料
一.实验 实验说明:3台zk集群,主要验证:master上的客户端,在master上建立临时节点,当master宕机时,其他follower选为主后,临时节点是否存在. 主要是通过此来验证,基于zk的 ...
- Mysql主从架构报错-Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work...
在搭建Mysql主从架构过程中,由于从服务器是克隆的主服务器系统,导致主从mysql uuid相同, Slave_IO无法启动,报错如下: The slave I/O thread stops bec ...
- MySQL-技术专题-MySQL主从架构以及[半同步机制]模式大全
MySQL的主从复制 一般在大规模的项目上,都是使用MySQL的复制功能来创建MySQL的主从集群的. 主要是可以通过为数据库服务器配置一个或多个备库的方式来进行数据同步. 复制的功能不仅有利于构建高 ...
- MySQL 主从架构配置详解
无论是哪一种数据库,数据的安全都是至关重要的,因此熟练掌握数据库的安全备份功能,是作为开发人员,特别是后端开发人员的一项必备技能.MySQL 数据库内建的复制功能,可以帮助我们对数据进行异地备份,读写 ...
- 使用Innobackupex快速搭建(修复)MySQL主从架构
MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一.但对于较大的数据库则该方式并非理想的选择.使用Xtrabackup可以快速轻松的构建或修复mysql主从架构.本文 ...
- Mysql主从架构
Mysql主从架构 1. 克隆虚拟机 克隆的虚拟机的网络适配,使得虚拟机可以进入局域网 vi /etc/sysconfig/network-scripts/ifcfg-eth0 删除 HWADDR所在 ...
- mysql group replication 主节点宕机恢复
一.mysql group replication 生来就要面对两个问题: 一.主节点宕机如何恢复. 二.多数节点离线的情况下.余下节点如何继续承载业务. 在这里我们只讨论第一个问题.也就是说当主结点 ...
- MySQL主从架构之Master-Slave主从同步
MySQL复制 MySQL复制是指将主库上的DDL和DML操作通过二进制日志传到从库上,使主库和从库上的数据保持同步 复制原理: 主服务器将更新写入二进制日志文件,并维护文件的一个索引来跟踪日志循环. ...
- MySQL主从架构配置
MySQL主从架构配置有两台MySQL数据库服务器master和slave,master为主服务器,slave为从服务器,初始状态时,master和slave中的数据信息相同,当master中的数据发 ...
随机推荐
- javaweb中上传图片并显示图片,用我要上传课程信息(里面包括照片)这个例子说明
原理: 从客户端上传到服务器 照片——文件夹——数据库 例如:桌面一张照片,在tomacat里创建upload文件夹,把桌面照片上传到upload文件夹里,并且把照片的 ...
- BOM简单知识
JS分为ECMAScript,DOM,BOM BOM是用来和浏览器进行‘’对话‘’的 一:与window对象进行交互: 1.查看用户信息: window.navigator.userAgent; 可以 ...
- Spring boot入门(二):Spring boot集成MySql,Mybatis和PageHelper插件
上一篇文章,写了如何搭建一个简单的Spring boot项目,本篇是接着上一篇文章写得:Spring boot入门:快速搭建Spring boot项目(一),主要是spring boot集成mybat ...
- 震惊!Vector两行代码求逆序对,六行代码过普通平衡树
Vector两行代码求逆序对 背景:济南集训Day7上午T2,出了一道逆序对的裸题,SB的我没看出是逆序对来,于是现场推了一个很刁钻的求逆序对的方法 首先我们想一下冒泡排序的过程,我们不难发现,对于每 ...
- OOCSS(面向对象的CSS)总结
按钮样式库:buttons.css /* vue */ [v-cloak]{display: none} /* 滚动条 */ ::-webkit-scrollbar { width: 6px; hei ...
- Vmware workstation V2V
错误提示 检查虚拟机文件是否有快照,用WORKSTATION打开虚拟机后删除所有快照再使用converter导入 检查VMx文件中声明的vmdk路径是否与文件实际路径相 ...
- 人脸识别Android SDK集成
目前我们的应用内使用了ArcFace 的人脸检测功能,这里就和大家分享一下我们的集成过程和一些使用心得~ 集成ArcFace FD 的集成过程非常简单在 ArcFace FD 的文档上有说明支持的系统 ...
- 自动给 Asp.Net Core WebApi 增加 ApiVersionNeutral
自动给 Asp.Net Core WebApi 增加 ApiVersionNeutral Intro 新增加一个 Controller 的时候,经常忘记在 Controller 上增加 ApiVers ...
- Git:七、标签(tag)
1.创建标签:切换到需要打标签的分支 1)直接打在最新commit的版本上 git tag <tagname> 2)找到commit id git tag <tagname> ...
- Unix、Windows、Mac OS、Linux系统故事
我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...