暂无图片
mysql高可用自动切换
我来答
分享
西麦子
2024-02-23
mysql高可用自动切换

想用keepalived搭配脚本实现自动切换,

请问主备的ip是不是必须在同一网段?跨网段可以吗?

另外业务量不大,也不想再多分资源做mgr,要实现自动切换还有啥办法呢?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
lianR

1.  主备的IP是否必须在同一网段,取决于你的网络环境和配置。在一般情况下,主备服务器应该在同一网段,这样它们之间的通信才能直接进行,不需要经过路由器。但是,如果你的网络环境允许跨网段通信,或者你已经正确配置了路由,那么主备服务器也可以在不同的网段。

2.  如果你的业务量不大,不想再多分资源做mgr,可以考虑使用其他的高可用性解决方案,如Pacemaker+Corosync,或者使用云服务提供商提供的负载均衡和自动切换服务。

3.  另外,你也可以考虑使用Docker  Swarm或Kubernetes这样的容器编排工具,它们内置了服务发现和负载均衡功能,可以自动处理服务的故障转移。

4.  如果你的应用可以容忍短暂的服务中断,你也可以简单地使用一个定时任务,定期检查主服务器的状态,如果检测到主服务器故障,就自动切换到备用服务器。

暂无图片 评论
暂无图片 有用 3
西麦子
题主
2024-02-26
谢谢回复,但是目前主备是跨网段通信的,但是要配置keepalived,网络同事说跨机房实现不了浮动ip。
lianR

keepalived的浮动IP是基于ARP协议实现的,ARP协议是在同一广播域内的设备之间通信的,如果是跨网段或者跨机房,由于不在同一广播域内,ARP协议不能直接通信,所以不能实现浮动IP。

解决方案有以下几种:
1.  使用GRE隧道或者VPN等方式,将两个不同的网络连接起来,使其在同一广播域内。
2.  使用其他的负载均衡和高可用性解决方案,比如F5、Haproxy、Nginx等。
3.  如果是云环境,可以考虑使用云服务商提供的负载均衡和高可用性解决方案。
4.  可以考虑使用DNS轮询或者其他的DNS解决方案,实现类似于浮动IP的效果。

暂无图片 评论
暂无图片 有用 0
西麦子
题主
2024-02-26
谢谢,目前不考虑上云,另外业务量不多,基本不需要分流,主要是考虑实现自动切换。我看看1 4的方法。
张sir

1、首先keepalive跨网段是不是支持切换,取决于网络配置

2、基于mysql的自动切换比较简单的就是mha,还是开源的。

3、单纯基于keepalive做的mysql自动切换是无法保证数据一致性的,keepalive是无状态的。

4、业务量不大,又不想浪费资源,直接弄个主从复制得了,出问题了手动切换,

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏