虚IP解决程序连只读服务器故障漂移
目前公司有一套核心交易数据库配置了AlWaysON,SQL 2012版本, 1主4从, 其从库(8,14, 8.15) 这2台只读的从数据库服务器, 后台程序和wms等很多程序,都是直接配置IP连接这个2个机器,而且这2台机器已经过保,如果其中一天机器出现故障,不能使用,怎么处理?
怎么解决?
先谈谈后果:
这2台机器都有很多程序只读查询操作,一旦一台挂了,起不来(虽然概率很低), 连故障服务器的程序,IP要改,同时程序要重启, 这些程序和服务,还很多,很容易漏。一旦出现故障,至少按小时算业务才能恢复,波及的面很广,肯定一级事故,其他最大的老板肯定会知道。
怎么处理:
自己咨询了其他同行他们的做法:
1,用域名替换IP,当IP的服务器有问题,修改DNS服务器就可以
2,使用类似的MyCAT中间件,目的读库有故障漂移到其他读库中
3,使用硬件,如携程他们的A10,可以做相关的分发
4,可以使用SQL AlwaysON的只读路由,让程序连主库,在主库做只读路由分发到读库
的确这些方法都能解决前面提到的读库故障转移:
1,用域名替换IP,同行能用,但是和他们这边的开发和运维聊了后,说这个域名替换IP的方案不可靠, 因为现在我们程序用域名,有时就出现莫名其妙的延迟问题,现在运维的技术只能哈哈,无法保证。 这个方案不行
2,使用中间件来做故障转移,和相关的框架开发,领导聊了,结论:没人没时间,不稳定,而且需要大量的测试,做不了。 这个方案不行
3,购买A10这样的硬件,贵,我们提也会被公司否。 这个方案不行
4,利用AlwaysON的只读路由, 自己也想了,现在因为主库的压力大查读库的,变成了先要到主库做一次路由分发,主库压力会更大,而且路由无法指定到那个机器,不能做流量控制。 这个方案不行
这一看市面上通用的方法一个也不适合我们,只能祈祷这2台服务器不出故障,即使出故障,也能重启后就好了。 真的只有这样的吗? 还有其他办法解决这个难题:
这个问题一直困扰,怎么解决,没有其他办法了,看起来所有的办法都不是很好的,只能留下一个笨办法
比较好方案: 找到全部连这2台的程序配置文件和需要重启的服务,预先找到全部,一旦有故障起不来, 立即批量修改和重启。 这样就可以了
但是这个方案我一直想找开发和测试聊,看看能否做出个“故障预案“,一直没有去做。
公司一部分的数据库有MySQL,在配置keepalived,MHA,和MMM,大量的使用了虚IP,在CentOS里配置虚IP结合这些开源的组件,的确很方便,在Windows里是否也可以利用这虚IP,如果哪天8.15这个数据库服务器挂了,是否也可以虚IP
自己想了想,windows里加虚IP,就是直接加个IP就可以了。如果真的8.15挂了,我把8.15的IP加到8.14服务器,是否可行?
又出现问题:
windows的故障转移集群和AlwaysON ,连的是8.15,把IP加到8.14是对现有的集群有影响。
后来想了想:
如果真的是8.15集群出故障,启动不来,不是可以把8.15踢出故障转移集群和AlwaysON,再添加IP到8.14不就好了。
这几天测试了一下这个流程,的确是可以的。
最终的解决方案:
(8.15, 8.14) 这2台读库服务器,出现故障,无法起来时,把故障的服务器踢出故障转移集群和AlwaysON,再添加新IP到其他读服务器上,同时前提在各读库服务器加上统一的账户和密码。这样,虽然不能做到无缝切换,
但也能最大程度上减少故障时间,等后面条件成熟了,可以用其他办法。
目前8.15和8.14因为服务器过保,目前也准备用这个方案来做服务器替换,用这个加虚IP的方法下架旧服务器和上架新服务器。目前正在测试,等切换完后,再介绍一下切换过程。
总结:
希望对大家解决问题思路上有些启发,天无绝人之路,只要你用心,会有收获,有时收获还很多!!
虚IP解决程序连只读服务器故障漂移的更多相关文章
- 虚IP解决AlWaysON读库服务器过保替换
公司核心交易数据库,使用SQL 2012 AlWaysON的1主4从,有2台(8.14,8.15)从库服务器,已经使用3年多,过保替换,新买的2台服务器已经安装好,一开始方案如下: 服务器(8.14) ...
- PUTTY无法远程连接服务器故障解决[转]
对于一个刚刚了解putty工具的新手来说,在putty工具使用中有时出现了问题而无法解决.今天就来介绍怎么解决putty无法远程连接服务器的故障. 用putty远程连接服务器时,提示错误 server ...
- 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题
如题所示,keepalived安装配置好之后能够正常启动,但是虚IP并没有生成.接着检查防火墙(iptables)发现也没有相关的限制.稍微郁闷了一下之后,查看了keepalived日志文件,这次成功 ...
- 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- Apache服务器故障排除攻略
Apache服务器故障排除攻略 应用服务器Apache浏览器配置管理网络应用 随着网络技术的普及.应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一.原有的客户端/服务器模式正 ...
- C/S架构程序多种类服务器之间实现单点登录(转)
(一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...
- 部署AlwaysOn第一步:搭建Windows服务器故障转移集群
在Windows Server 2012 R2 DataCenter 环境中搭建集群之前,首先要对Windows服务器故障转移集群(Windows Server Failover Cluster,简称 ...
- C/S架构程序多种类服务器之间实现单点登录
(一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...
随机推荐
- FPM
https://github.com/pangudashu/php7-internal/blob/master/1/fpm.md
- Google Chrome浏览器插件入门开发
--1. 在html文件中引用js 文件 --2.在Google Chrome中开发简单插件 1.首先,简单说明一下在html 中引用js 文件: 将kittenbook.html 和 kittenb ...
- 与 MySQL 因“CST” 时区协商误解导致时间差了13 小时
CST 时区名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard Time (USA) UTC-05:00 / UTC-06:00 澳大利亚中部时间 C ...
- 并发编程-concurrent指南-原子操作类-AtomicLong
可以用原子方式更新的 long 值.有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范.AtomicLong 可用在应用程序中(如以原子方式增加的序列号), ...
- 充气娃娃什么感觉?Python告诉你
上期为大家介绍了requests库的基本信息以及使用requests库爬取某东的商品页,收到了很多同学的反馈说期待猪哥的更新,猪哥感到非常开心,今天就带大家来玩一把刺激的! 一.需求背景 在实际开发过 ...
- 1.为什么会有Servlet?它解决了什么问题?
1. 为什么会出现Servlet? 因为web服务器(tomcat.Weblogic.iis.apache)没有处理动态资源请求的能力(即该请求需要计算),只能处理静态资源的请求(如果浏览器请求某个h ...
- python进阶--字典排序
zip()函数 sorted() 要求对字典中,按值的大小排序 解决方案: 利用zip函数 zip函数介绍: zip函数可以将可迭代对象打包成一个个元组,在python3中返回一个对象,在python ...
- Windows OS添加USB3.0驱动!
原因:现在的win7.win2008等一些早期的系统在安装时无法使USB鼠标和键盘... 1. 素材(dism64工具.UltraISO工具.U盘一个) 2. 先使用UltrISO工具制作一个wi ...
- 数据库中 ’’ 和 NULL的区别
null不是对象,''是对象 从'',你就可以知道这是一个字符串类型的数据,是一个长度为零的字符串. 从NULL,你只能知道这里没有赋过值,是空的,他不属于任何数据类型. 我们在数据库实际使用中,一般 ...
- 网络编程模型及TCP、UDP编程设计
1.Linux网络模型 Linux网络编程--->>>socket套接字的编程 2.TCP网络模型 ...