暂无图片
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


请输入正文
提交
相关推荐
表空间怎么清除,数据库都删了, 也没有对应的文件, 不知道怎么还在?
回答 1
undolog默认在共享表空间中(ibdata1文件),数据库删除,只是对应的undolog情况,其他数据库中,如果有事务,也会生成undolog,所以你需要去了解下undolog的相关知识
mysql最高每秒能插入多少条数据 ?
回答 1
已采纳
默认情况下10005000都有可能。
请问一下MySQL有实例名不?如何获取?通过SQL语句方式
回答 2
已采纳
1、MySQL与Oracle数据库不同,MySQL没有实例名的概念;2、MySQL的数据库名,对应Oracle的Schema,也就是一个用户下的所有对象;3、在MySQL中通过以下命令查看可以操作的数
default-character-set 在8.0中默认是utf8mb4,在5.7中对应的功能相同的参数是什么?
回答 1
[client]port7306defaultcharactersetutf8mb4 客户端默认字符集[mysqld]port7306charactersetserverutf8mb4&nb
mysql大表加字段,8核16G,7千万的表,怎么加比较快
回答 2
已采纳
新建同结构表,加了字段再导入数据,insertinto。。。。select。。。where,插入的时候用where拆分数据,分多个insert插入  ,就看机器的IO性能了&nbs
MySQL中limit的作用是什么?
回答 1
已采纳
limit限制返回结果行数,主要用于查询之后要显示返回的前几条或者中间某几行数据,其写法如下所示: LIMIT0,100;表示从起始角标为0的位置,往后获取100条记录,也可简写为LIMIT
MySQL按时间点恢复
回答 1
已采纳
可以使用binlog2sql,一个开源的python工具,用于回放sql,可以指定时间点
mysql 隔几个小时就需要重启,然后才能访问 需要哪里设置吗?
回答 2
问题能够隔几个小时重复出现,应该是共性问题,建议你跟踪一下主机的资源使用情况,检查出现问题时MySQL错误日志提示信息及操作系统日志信息,如果这些没有明显的问题,就需要与应用沟通,确定问题时间点有没有
什么是MySQl的pid文件?
回答 2
已采纳
pid文件是MySQL实例的进程ID文件。当MySQL实例启动时,会将自己的进程ID写入一个文件中,该文件即为pid文件。该文件可由参数pidfile控制,默认路径于数据库目录下,文件名为:主机名.p
pymysql 无法获取mysql更新后的数据?
回答 1
看下事务隔离级别showvariableslike'%transactionisolation%';