SQL Server--疑难杂症之坑爹的Windows故障转移群集(转)
估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也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故障转移群集(转)的更多相关文章
- SQL Server--疑难杂症之坑爹的Windows故障转移群集
--============================================================== 估计是春节前最后一次写博客,也估计是本年值班最后一次踩雷,感叹下成也S ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域、DNS服务器和Windows故障转移群集(准备工作)
因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...
- 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...
- 搭建Windows故障转移群集
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/windows 概述 本章内容主要讲述搭建windows故障转移群集 环境: 域服务器:windows server 2008 R ...
- SQL Server ->> 高可用与灾难恢复(HADR)技术之 -- Windows故障转移群集
WSFC 群集 (WSFC cluster)“Windows Server 故障转移群集”(WSFC) 群集是一组独立的服务器,它们共同协作以提高应用程序和服务的可用性. 故障转移群集实例 (Fail ...
- Windows故障转移群集(WSFC)的备份和恢复
使用wbadmin进行备份和恢复将C盘数据备份到E盘查看备份的版本以及包含的items模拟群集角色被误删除进行恢复操作检查恢复的效果 WSFC群集的备份和恢复功能是使用Windows Server B ...
- (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
原文地址: http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...
- (转载) 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁 ...
- 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集群,集群只剩下单节点也不会挂掉,故 ...
随机推荐
- [Artoolkit] kpmMatching & Tracking of nftSimple
1. kpmMatching thread main() --> loadNFTData() --> trackingInitInit() --> In static void *t ...
- Linux里的2>&1究竟是什么
我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令.首先我们把这条命令大概分解下首先就是一个nohup表示当前用户和系统 ...
- iOS手机淘宝加入购物车动画分析
本文转载至 http://www.jianshu.com/p/e77e3ce8ee24 1.最终效果 仿淘宝动画 2.核心代码 _cartAnimView=[[UIImageView alloc] i ...
- 使用LevelListDrawable实现Html.fromHtml多张图片显示
stackoverflow网站果然强大,帮了我不少忙! http://stackoverflow.com/questions/16179285/html-imagegetter-textview 首先 ...
- php中memcached的使用
文档所在:http://php.net/manual/zh/book.memcached.php 1.在php使用memcached操作之前要实例化memcached: [系统类] 2.添加服务器: ...
- sql优化的方法
参考:https://blog.csdn.net/jie_liang/article/details/77340905 11.不要写一些没有意义的查询,如需要生成一个空表结构: select col1 ...
- c# 串口关闭死机
用C#编写的wince串口通信程序基本大功告成了,与之前用API函数和线程来做串口通信不同,这次直接使用SerialPort控件来做,原本以为使用控件做会简单和方便许多,没成想,还遇到了很多麻烦. 通 ...
- [No0000141]Outlook,设置全局已读回执
Outlook,设置全局已读回执 文件->选项
- [No0000E4]C# 常量
常量是固定值,程序执行期间不会改变.常量可以是任何基本数据类型,比如整数常量.浮点常量.字符常量或者字符串常量,还有枚举常量. 常量可以被当作常规的变量,只是它们的值在定义后不能被修改. 整数常量 整 ...
- 编译安装hadoop2.x
1.Requirements: * Unix System * JDK 1.7+ * Maven 3.0 or later * Findbugs 1.3.9 (if running findbugs) ...