估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也SQL SERVER,败也SQL SERVER。

--==============================================================

场景描述:

操作系统版本 :Windows Server 2012 数据中心版本

数据库版本 :SQL SERVER 2012 企业版,版本号:11.0.5582.0

问题描述:数据库配置Alwayson环境,同机房2节点同步自动切换+跨机房异步,实现高可用性自动故障转移,由于有四个节点,因此选择奇数即3节点的群集仲裁,但当其中一节点(仲裁节点或非仲裁节点)发生硬件故障导致重启,便可能“引发”群集之间香菇丢失通信,然后群集开始对各个群集节点"已从活动故障转移群集成员身份中删除群集节点XXX",最终群集把所有仲裁节点删掉,群集自身挂掉,群集发生故障,导致上层依赖的Alwayson无法正常提供服务,处于“正在解析”状态,直到重启的节点恢复正常==>群集正常==》Alwayson正常。

假设有ABCD四个节点,AB和CD分别在两个机房,ABC三节点配置为仲裁节点,C节点发生故障,从群集时间中发现:

ABC三节点先后从故障群集中被移除,然后仲裁丢失群集服务关闭。

--=====================================================================

根据MS专家给出的分析,怀疑网络问题,事件1135也明显提示由于网络问题导致,而机房也查出部分出现该类故障的服务器使用了有问题的AOC线缆。

但是,问题总是在但是之后,为什么网络中喜欢在服务器宕机的时候出来凑热闹呢?一组Windows故障转移,当不出现问题的时候,一年多没有出现网络问题,就偏偏恰好在服务器宕机的时候网络“抖动”呢?因为服务器宕机产生的兴奋还是恐惧导致抖动呢?

同机房的网络应该比较值得信赖吧,一个异地机房的服务器宕机导致同一机房的网络抖动也不太科学吧。

--=====================================================================

另外一个错误提示为:A与挂掉的C握手未在40秒内完成握手

难道群集节点之间这么重感情么?跟一个挂掉的节点握手都等待这么长时间?要不要等到地老天荒呢?

科普下,如果出现类似状况,如果发生宕机的服务器无法尽快重启成功,在故障转移群集无法正常启动下,可以使用 net stop clussvc来停止本地群集服务器,然后再使用net start clussvc /fq来强制将本地群集服务启动,以便尽快使Alwayson回复正常提供服务。

--====================================================================

一些不太靠谱的建议,供各位参考:

1. 对于跨机房的仲裁节点,能不用还是别用吧,实在不行在同机房弄个服务器做文件共享仲裁也行

2. 两节点的故障转移群集,一定要配置文件共享或磁盘见证

3. 群集属性中策略一栏,尽量配置下““指定时段内重新启动的最多次数”:

--====================================================================

吐槽下,Alwayson号称秒级别的故障转移啊,很诱惑,的确很多时候这个让DBA很放心,收到故障短信的时候,早已自动转移并恢复提供服务,DBA可以放心地洗个澡刷个牙换身衣服再来处理故障。但是理想是美好的,现实是残酷的,AO大部分情况下还算给力,出现BUG无法正常切换的几率较低(注意是较低不是没有),但架不住坑爹的Windows故障转移群集,地基不好,楼再结实也容易塌啊!

期望SQL SERVER能再次崛起,也期望作为SQL SERVER DBA能再像以前那样骄傲地说“SQL SERVER,肯定没问题”。

SQL Server--疑难杂症之坑爹的Windows故障转移群集(转)的更多相关文章

  1. SQL Server--疑难杂症之坑爹的Windows故障转移群集

    --============================================================== 估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也S ...

  2. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域、DNS服务器和Windows故障转移群集(准备工作)

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  3. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  4. 搭建Windows故障转移群集

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/windows 概述 本章内容主要讲述搭建windows故障转移群集 环境: 域服务器:windows server 2008 R ...

  5. SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Windows故障转移群集

    WSFC 群集 (WSFC cluster)“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性. 故障转移群集实例 (Fail ...

  6. Windows故障转移群集(WSFC)的备份和恢复

    使用wbadmin进行备份和恢复将C盘数据备份到E盘查看备份的版本以及包含的items模拟群集角色被误删除进行恢复操作检查恢复的效果 WSFC群集的备份和恢复功能是使用Windows Server B ...

  7. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

  8. (转载) 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁 ...

  9. Windows Server 2008 R2+SQL Server 2014 R2升级到Windows Server 2016+SQL Server 2016

    环境: 操作系统:Windows Server 2008 R2 数据库:SQL Server 2014 因SQL Server 2016可以无域创建AlwaysOn集群,集群只剩下单节点也不会挂掉,故 ...

随机推荐

  1. java遇见的问题分析

    下面就一些java的一些基本问题进行解释.其中蓝色部分为handsomecui的主观看法 一.synchronized(obj)里面的参数怎么解释? synchronized的参数代表的是“对象锁”代 ...

  2. Failed to resolve: com.android.support:appcompat-v7:27.0.1问题解决

    今天,在毫无征兆的情况下AndroidStudio又抽风了,搞了大半天,试了网上众多方案,终于解决了这个问题.咱们一步一步来 第一步:这是最开始的bug Error:Failed to resolve ...

  3. cube-ui修改按钮颜色

    首先,当我们按照脚手架一步一步创建完项目以后 $ vue init cube-ui/cube-template projectname $ sudo npm install $ npm start 主 ...

  4. 10.21CRM项目(01)

    2018-10-21 13:35:19 crm第一天!放上初始源码! 后面等做完最后一天的手放上所有源码! 越努力越幸运!永远不要高估自己! 注意 多层for循环的时候,切记,不要名字重复!啦!!!! ...

  5. 10.5Djang admin 管理工具

    2018-10-5 17:30:57 Django admin 管理工具  参考连接: https://www.cnblogs.com/yuanchenqi/articles/8323452.html ...

  6. windows下搭建docker

    1.下载,双击安装,然后一路next 2.启动,然后打开docker的settings 在shared drives里勾选你想要把项目存放的盘,点击Apply(这里在windows系统下有个坑,项目只 ...

  7. javascript基础学习系列-1

    JavaScript简介 JavaScript的用途 JavaScript用来制作web页面交互效果,提升用户体验. web前端三层来说:w3c的规范:行内样式(淘汰) 结构层 HTML 从语义的角度 ...

  8. Smarty模板保留缓存

    <?php //缓存 //注:使用缓存需要用到这几个方法: //(ob_start(开启内存缓存); ob_flush(清除内存缓存);) //file_exists这个方法是判断文件是否存在 ...

  9. System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。

    x 昨天还好好地,然后清理一下电脑垃圾,就突然报这个错误了; 网上搜索了一下:找到解决方案了,但是由于底层知识的功力不够,至今未知具体怎么导致的... 解决方案↓ 进注册表 按Win+R运行reged ...

  10. ubuntu16.04安装 catkin_tools

    参考:https://catkin-tools.readthedocs.io/en/latest/installing.html First you must have the ROS reposit ...