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

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

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

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

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

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

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

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

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

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

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

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

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

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

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Mysql建不了用户,报错1819,怎么解决?
回答 3
5.7setglobalvalidatepasswordpolicy0;setglobalvalidatepasswordlength0;setglobalvalidatepasswordnumber
MySQL的静态链接库与动态链接库有什么区别?
回答 1
已采纳
静态链接库就是使用的.lib文件,库中的代码最后需要链接到可执行文件中去,所以静态链接的可执行文件一般比较大一些。动态链接库是一个包含可由多个程序同时使用的代码和数据的库,它包含函数和数据的模块的集合
MySQL被删库了还能恢复吗?
回答 1
没有备份就跑路吧
oracle中哪些操作会用到sort_buffer_size?
回答 5
已采纳
orderby,groupby,distinct应该都会用到吧。
求资源 MySQL 8.0 for Database Administrators StudentGuide .pdf
回答 3
已采纳
ok了
MySQL 数据库被覆盖了怎么恢复到被覆盖之前?
回答 1
这个需要看你有没有覆盖之前的数据库的备份,不然得话是不行的。
现在公司一般用的是哪个版本?
回答 4
已采纳
目前,MySQL5.7和8.x版本都是比较常见的版本。但是,不同的公司可能会使用不同的版本,具体取决于公司的业务需求和技术架构。相对来说新兴企业8.x
Mysql中格式化日期的函数是?
回答 8
已采纳
DATEFORMAT()
MYSQL有类似ROWID虚拟列吗?
回答 1
MySQL有个rowid,但限制蛮多的,你看看这个https://segmentfault.com/a/1190000019067459
如何从oracle迁移到mysql,最短停机时间
回答 1
已采纳
使用ogg