首页 技术 正文
技术 2022年11月6日
0 收藏 962 点赞 334 浏览 1194 个字

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服务恢复,再重新同步数据即可

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,108
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,584
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,431
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,202
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,837
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,920