AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 317851
Accepted
variable
variable
Asked: 2022-10-06 00:14:59 +0800 CST2022-10-06 00:14:59 +0800 CST 2022-10-06 00:14:59 +0800 CST

帮助我了解当 2 个节点 + 1 个文件共享集群中剩余 2 个节点时 FCI 集群仲裁如何工作?

  • 772

链接:https ://learnsqlserverhadr.com/so-you-think-your-sql-server-availability-group-is-really-highly-available/

给出的示例是 - 有 2 个节点和 1 个文件共享。作者说文件共享下降,集群保持活跃,因为它有 2/3 票。

在这一点上,他们对动态仲裁(当剩余 2 个节点时)说以下内容:

好消息是它们在 Windows Server 2012 上。此版本的 Windows Server 引入了动态仲裁的概念,并且默认启用。WSFC 根据节点的状态管理对节点的投票分配。如果节点脱机——重新启动、断电、与网络断开连接等——它的投票也会从集群中删除。这就是集群节点重启时AG下线的原因。

我试图了解为什么 AG(集群)离线?

该文档说(https://learn.microsoft.com/en-us/azure-stack/hci/concepts/quorum#two-nodes-without-a-witness):

一个节点的投票为零,因此多数票是从总共 1 票中确定的。如果非投票节点意外宕机,幸存者有 1/1,集群幸存。如果投票节点意外宕机,幸存者有0/1,集群宕机。如果投票节点正常断电,则投票将转移到另一个节点,并且集群仍然存在。这就是为什么配置见证人至关重要的原因。

具体来说:如果投票节点正常断电,投票将转移到另一个节点,集群仍然存在。

再往下说:

每当幸存节点成功验证他们是多数人时,多数人的定义就会更新为仅在幸存者中。这允许集群丢失一个节点,然后是另一个节点,然后是另一个节点,依此类推。这种在连续失败后适应的投票总数的概念称为动态仲裁。

我的问题假设在 2 节点 + 1 文件共享设置中,说文件共享下降,然后:

  1. 假设 node1 设置为 0(通过动态仲裁),那么如果我关闭 node2 则不会对集群产生任何影响。(因为动态仲裁会将投票权切换到节点1)?法定人数>0.5

  2. 假设 node1 设置为 0(通过动态仲裁),如果 node1 关闭,那么集群也将保持活动状态,因为 quorum > 0.5

  3. 假设 node2 设置为 0(通过动态仲裁),并且 node2 关闭,那么集群将保持活动状态,因为 quorum >0.5

  4. 假设 node2 设置为 0(通过动态仲裁),那么如果我关闭 node1,集群也将保持在线,因为投票将切换到 node2 并且仲裁>0.5

  5. 作者的集群为什么会宕机?

sql-server clustering
  • 1 1 个回答
  • 34 Views

1 个回答

  • Voted
  1. Best Answer
    Sean Gallardy
    2022-10-06T07:06:25+08:002022-10-06T07:06:25+08:00

    具体来说:如果投票节点正常断电,投票将转移到另一个节点,集群仍然存在。

    在他的示例中,他解释了动态见证和动态仲裁有助于集群可用性。节点的动态权重是否变化取决于集群的当前配置和当前状态,以及一些随机数据,例如节点id。

    假设 node1 设置为 0,那么如果我关闭 node2 则不会对集群产生任何影响。

    如果您将 node1 的节点权重设置为 0,那么它永远没有投票权。如果这是您的问题所建议的 2 节点集群,则重新启动节点 2,集群将关闭。

    如果您谈论的是动态仲裁,那么在带有见证人的 2 节点集群中,投票不会被动态删除。它将使集群保持 3 票,因为如果节点投票数是偶数(它在 2 节点集群中),动态见证将被设置为投票。更改投票对集群的可用性没有任何帮助。

    无论哪种方式,如果见证人可用,丢失一个节点不会导致可用性损失。

    假设 node2 设置为 0,那么如果我关闭 node1,那么集群是否会立即将投票切换到 node1 从而使集群保持活动状态,或者它是否会关闭集群,然后在将投票切换到 node1 后将其备份?

    由于如上所述,在 2 节点设置中投票不会动态更改,节点 2 没有投票的唯一方法是手动设置。在这种情况下,集群将关闭。否则,正如我之前解释的那样,节点将拥有投票权,集群将保持正常运行。

    作者的集群为什么会宕机?

    因为 Edwin 专门指出了在 WS2012R2 及更高版本中所做的动态见证和动态仲裁更改,并通过使用没有实现所有项目的 WS2012 来证明这一点(并且还提到了两个都没有实现的 2008R2)。

    • 2

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve