本篇文章主要介绍Windows2012的故障转移集群一个新功能“动态仲裁”,默认该功能是开启的; 动态仲裁能在当前群集投票出现分歧的情况下取消某些节点的投票权限,比如偶数个节点的群集环境。仲裁见证和动态仲裁有点相似也可以解决群集投票分歧的问题,但是它不能取消节点的投票权,它能保持群集的投票个数保持奇数个数。

SQLServer版本: SQL Server 2016 SP1

Windows版本:Windows Server 2012 DataCenter

群集节点:HD21DB03,HD21DB04,HD21DB05,HD21DB06

一、动态仲裁

当前群集是4个节点的偶数个群集,采用的是多数节点的仲裁投票方式。

1.全部节点正常

当前集群WSFC26的动态仲裁是开启的,见证动态投票当前是0;开启动态仲裁后,由于当前是4个节点的偶数个节点默认把主节点的当前投票给取消了。

2.模拟1个节点故障

当一个节点故障后,动态仲裁把之前的DB03的投票给启用了,还是保证了有3个节点的投票。

3.模拟2个节点故障

当2个节点故障后,动态仲裁把剩下的DB04节点的投票也取消了,由于当前是2个节点所以只能保证一个节点有投票权,否则会出现投票分歧的情况。

4.模拟3个节点故障

当把3个节点故障后,集群还是保证正常,同时AlwaysOn也是正常的。

注意:第三个故障节点不能是当前有投票权的节点DB05,否则群集就无法保持正常了,因为当前只有DB05有投票权。

AlwaysOn也正常

二、仲裁见证

再看一下当同时启用动态仲裁和见证仲裁的情景。

1.全部节点

当前4个节点都有投票,而且见证动态投票也变成了1,当前群集就有5个投票。

2.模拟1个节点故障

当有一个节点故障后,这时见证动态投票也变成了0,保证了当前奇数个投票。当前有3个投票。所以当两个节点故障后见证动态投票会变成了1

3.模拟2个节点故障

模拟两个节点故障后,见证动态投票变成 了1,当前还是保证了3个投票。而且这时DB04、DB05都可以故障,不影响整个集群,而且如果这个两个节点都是同步提交的话AlwaysOn也能正常切换。比没有加入见证的动态仲裁集群存活几率更大。

4.模拟3个节点故障

注意:这里DB05已经故障了,但是它的当前投票还是为1,而且见证投票也是1,总投票数还是3,可能是个bug;最后的投票数应该只有DB04有且见证投票也应该为0总投票数应该为1。当时整个集群还是正常的。

这里故意把DB05节点故障测试AlwaysOn群集转移情况,事实证明只要群集正常转移也是没问题,前提节点得是同步提交支持自动故障转移。

注意:最后保证只有一个节点群集也正常也是动态仲裁的作用,否则当前群集只能运行2个节点故障。见证投票只是增加了群集的投票几率。

三、关闭动态仲裁

接下来看4个节点且关闭了文件共享见证的场景。

1.全部节点正常

2.模拟1个节点故障

当前群集和AlwaysOn都正常

3.模拟2个节点故障

整个群集群集故障无法访问。

注意:不要存在这种误区以为偶数个节点就无法投票选举,如果4个节点都正常或者两两处于不同的数据库中心的情况下有可能会导致投票无法选举成功。但是当某个节点故障剩下的3个节点还是能选出一个新的主节点,因为剩下的节点可以满足节点多数。

四、命令

1.查看动态仲裁和见证投票

Get-Cluster | ft name,DynamicQuorum,WitnessDynamicWeight

2.开启关闭动态仲裁

--关闭
(Get-Cluster).DynamicQuorum=
--开启
(Get-Cluster).DynamicQuorum=

备注:在其中一个群集节点上执行即可

五、总结

动态仲裁功能可以大大的提高了群集的存活几率,是一个非常有用的功能。反而见证的效果就变的没那么重要的,当然对于如果服务器紧张的情景见证还是可以充当节点投票来使用。以前的大多数节点的投票机制是在整个集群节点的基础上,现在引入了动态仲裁后是以每一次群集仲裁正常后为基础进行仲裁。

参考:http://www.tech-coffee.net/understand-failover-cluster-quorum/

备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

Windows Server2012 故障转移集群之动态仲裁(Dynamic Quorum)的更多相关文章

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

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

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

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

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

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

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

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

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

    本篇主要讲配置Windows 故障转移集群及遇到的相关问题(坑),因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁配置 四种集群的仲裁配置: 1.多 ...

  6. 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

    需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服 ...

  7. 在Windows 2008/2008 R2 上配置IIS 7.0/7.5 故障转移集群

    本文主要是从:http://support.microsoft.com/kb/970759/zh-cn,直接转载,稍作修改裁剪而来,其中红色粗体部分,是我特别要说明的 若要配置 IIS 7.0 和 7 ...

  8. windows server 2012R2 故障转移集群配置

    配置说明: AD:10.10.1.10/24  Node-2:10.10.1.20/24 Node-3:10.10.1.30/24 zhangsan-PC:10.10.1.50/24  VIP1:10 ...

  9. sqlserver2008 复制,镜像,日志传输及故障转移集群区别

    一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步, ...

随机推荐

  1. 【BZOJ2132】圈地计划(最小割)

    [BZOJ2132]圈地计划(最小割) 题面 BZOJ 题解 对我而言,不可做!!! 所以我膜烂了ZSY大佬 他的博客写了怎么做... 这,,...太强啦!! 完全想不到黑白染色之后反着连边 然后强行 ...

  2. [SDOI2012]Longge的问题

    题目大意: 网址:https://www.luogu.org/problemnew/show/P2303 大意:给定一个N,求\(\Sigma_{i=1}^N gcd(i, N);\). 题目解法: ...

  3. Couldn't save uncommitted changes.

    关于idea切换分支报错的问题. Couldn't save uncommitted changes. Tried to save uncommitted changes in stash befor ...

  4. 第二章 js数据类型和变量

    一.驼峰命名法 第一个单词首字母大写,如果有多个单词的话其他的单词首字母大写. eg:nickName 二.prototype现象 新的命名规范. 常用的:以下划线为首字母(变量为对象的私有成员变量) ...

  5. Eclipse增强代码提示插件Code Recommenders安装,顺便说说Eclipse插件安装方法

    1.为什么用Code Recommenders 在用过Intelij Idea后,发现它的自动代码提示非常智能,可以敲关键字就能提示,但是因为公司用的是Eclipse, 所以想找有没有这个插件能增强代 ...

  6. 常用Oracle进程资源查询语句(运维必看)

    (一)根据程序名称查找相关信息select A.process,B.spid,A.sid,A.serial#,A.sql_address,A.username,A.program,A.status,A ...

  7. 审核Memcrashed Drdos攻击代码

    0x00前言: 距离世界上最大的Drdos攻击已经过去了两个星期左右 昨天在交流的时候.群友在Github中找到了exploit. 0x01开始: #-- coding: utf8 -- #!/usr ...

  8. AJAX跨域问题解决思路

    ajax跨域问题的解决思路主要分为3种: 1.浏览器限制解决思路:不让浏览器做出限制解决方法:通过指定参数,让浏览器不做跨域校验评价:价值不大,需要每个人都做改动,而且改动是客户端的改动 2.XHR请 ...

  9. JVM内存越多,能创建的线程越少,越容易发生java.lang.OutOfMemoryError: unable to create new native thread。

    一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse ...

  10. linux的学习之路--(五)bash及其特性

    操作系统组成作用shell是离用户最近的程序 shell:外壳 两类 GUI:Gnome,KDE,Xfce CLI:sh, csh,ksh,bash(都是程序,就是功能支持的不同而已) 进程:在每个进 ...