目前公司有一套核心交易数据库配置了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解决程序连只读服务器故障漂移的更多相关文章

  1. 虚IP解决AlWaysON读库服务器过保替换

    公司核心交易数据库,使用SQL 2012 AlWaysON的1主4从,有2台(8.14,8.15)从库服务器,已经使用3年多,过保替换,新买的2台服务器已经安装好,一开始方案如下: 服务器(8.14) ...

  2. PUTTY无法远程连接服务器故障解决[转]

    对于一个刚刚了解putty工具的新手来说,在putty工具使用中有时出现了问题而无法解决.今天就来介绍怎么解决putty无法远程连接服务器的故障. 用putty远程连接服务器时,提示错误 server ...

  3. 【转】解决keepalived正常启动但是虚IP(VIP)没有生成的问题

    如题所示,keepalived安装配置好之后能够正常启动,但是虚IP并没有生成.接着检查防火墙(iptables)发现也没有相关的限制.稍微郁闷了一下之后,查看了keepalived日志文件,这次成功 ...

  4. 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法

    1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...

  5. Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法

    1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...

  6. Apache服务器故障排除攻略

    Apache服务器故障排除攻略 应用服务器Apache浏览器配置管理网络应用  随着网络技术的普及.应用和Web技术的不断完善,Web服务已经成为互联网上重要的服务形式之一.原有的客户端/服务器模式正 ...

  7. C/S架构程序多种类服务器之间实现单点登录(转)

    (一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...

  8. 部署AlwaysOn第一步:搭建Windows服务器故障转移集群

    在Windows Server 2012 R2 DataCenter 环境中搭建集群之前,首先要对Windows服务器故障转移集群(Windows Server Failover Cluster,简称 ...

  9. C/S架构程序多种类服务器之间实现单点登录

    (一) 在项目开发的过程中,经常会出现这样的情况:我们的产品包括很多,以QQ举例,如登陆.好友下载.群下载.网络硬盘.QQ游戏.QQ音乐等,总不能要求用户每次输入用户名.密码吧,为解决这个问题,高手提 ...

随机推荐

  1. spring cloud 系列第5篇 —— hystrix+turbine 服务的熔断与监控 (F版本)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.hystrix 简介 1.1 熔断器 在分布式系统中,由于服务之间相互 ...

  2. 纯CSS制作加<div>制作动画版哆啦A梦

    纯CSS代码加上<div>制作动画版哆啦A梦(机器猫) 哆啦A梦(机器猫)我们大家一定都很熟悉,今天给大家演示怎么用纯CSS代码,来做一个动画版的哆啦A梦. 效果图: ###下面代码同学可 ...

  3. code forces 1173 C. Nauuo and Cards

    本文链接:https://www.cnblogs.com/blowhail/p/10990833.html Nauuo and Cards 原题链接:http://codeforces.com/con ...

  4. HDU 3938:Portal(并查集+离线处理)

    http://acm.hdu.edu.cn/showproblem.php?pid=3938 Portal Problem Description   ZLGG found a magic theor ...

  5. centos7安装hadoop完全分布式集群

    groupadd test             //新建test工作组 useradd -g test phpq        //新建phpq用户并增加到test工作组 userdel 选项 用 ...

  6. 基于Django框架 CRM的增删改查

    思路: 创建表------从数据库读出数据展示出来------配置路由-----写视图函数------写对应页面 练习点: 数据库建表 ORM 数据库数据读取 数据 ModelForm  (form组 ...

  7. python3+pyQt5+QtDesignner实现窗口化猜数字游戏

    描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...

  8. 第一章 Servlet

    JavaEEe技术包括Servlet/Jsp.Java Message Service(JMS).Enterprise JavaBeans(EJB).JavaServer Faces(JSF),以及J ...

  9. Java 内存映射文件

    import java.io.*; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import jav ...

  10. requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))【已解决】

     问题: 跑python自动化时出现报错如下图 解决: requests请求时,后面加上参数:stream=True. 参考外国小哥:https://stackoverflow.com/questio ...