关于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中的数据发 ...
 
随机推荐
- year 和 weak year 的区别
			
java 中使用 SimpleDateFormat 时,会遇到 year 和 week year 这两个概念,特此记录. google 答案: A week year is in sync with ...
 - 设计模式之Factory模式 代码初见
			
ObjectFactory就是通过Factory建造一个Object,比如说DBConnectionFactory就是专门建造DBConnection的工厂 BuilderFactory就是通过Fac ...
 - vue点击按钮给商品按照价格进行倒叙
			
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
 - Jetty 开发指南:Jetty 内嵌开发
			
Jetty的口号是“不要在Jetty中部署你的应用程序,在你的应用程序中部署Jetty!” 这意味着,作为将应用程序捆绑为要部署在Jetty中的标准WAR的替代方案,Jetty旨在成为一个软件组件,可 ...
 - 轨迹系列1——一种基于路网图层的GPS轨迹优化方案
			
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 GPS数据正常情况下有20M左右的偏移,在遇到高楼和桥梁等情况 ...
 - input输入限制,只允许输入数字和“.”,长度不得超过20
			
<input style="margin-top: 10px;width: 100%;text-align:center;" id="removeArea" ...
 - SQL Server GUID 数据迁移至MongoDB后怎样查看?
			
关键字:SQL Server NEWID():BSON:MongoDB UUID 1.遇到的问题和困惑 SQL Server中的NEWID数据存储到MongoDB中会是什么样子呢?发现不能简单的通过此 ...
 - Linux学习历程——Centos 7 grep命令
			
一.命令简介 grep 命令用于在文本中执行关键词搜索,并显示匹配的结果. 由于grep命令参数很多,这里只列出一些常用的参数. 参数 作用 -b 将可执行文件当作文本文件来搜索 -c 仅显示找到的行 ...
 - man -f/-k [keyword]在fedora 29 中报错nothing appropriate
			
我们在使用 man 手册的时候,可以使用man -f [keyword]去查询keyword的在线文档,但是这时候会报错:(图来源自网络) 这是因为我们还没有建立 man 手册的索引缓存: 我们可以使 ...
 - LeetCode算法题-License Key Formatting(Java实现)
			
这是悦乐书的第241次更新,第254篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第108题(顺位题号是482).您将获得一个表示为字符串S的许可证密钥,该字符串仅包含字 ...