![SQL Server 主动/被动与主动/主动群集](https://linux22.com/image/545254/SQL%20Server%20%E4%B8%BB%E5%8A%A8%2F%E8%A2%AB%E5%8A%A8%E4%B8%8E%E4%B8%BB%E5%8A%A8%2F%E4%B8%BB%E5%8A%A8%E7%BE%A4%E9%9B%86.png)
SQL Server 群集方法之间有何区别: - 主动/主动 - 主动/被动
在简单的世界和每个方法的示例使用场景中......
答案1
主动/主动意味着两个节点都处于活动状态并访问共享磁盘资源,但运行的是独立实例。当一个节点发生故障时,您需要确保剩余节点具有可用资源来处理故障转移的其他数据库。您可以这样想。节点 A 上有 1 个数据库,节点 B 上也有 1 个数据库。节点 A 发生故障,资源故障转移到节点 B,现在节点 B 上有 2 个数据库在运行。
在主动/被动集群中,任何给定时间,单个节点上都只能运行 1 个数据库。节点 A 处于主动状态,有 1 个数据库,节点 B 处于被动状态,没有数据库。节点 A 发生故障,资源将故障转移到节点 B。节点 B 现在处于主动状态,上面运行着 1 个数据库。
我确信更有经验的集群管理员或 SQL 管理员会因为我的术语而严厉批评我,但简而言之就是这样。
答案2
Holocryptic 的描述非常准确,但是可能有些误解。
SQL Server 群集实例可以在群集中的任何节点上运行,但它只能在一个节点上运行。因此,如果群集中有两个节点,SQLServerA 可能在节点 1 上运行 - 并且可以故障转移到节点 2 上运行。为客户端/应用程序指定的虚拟名称意味着它在哪个节点上运行并不重要。这可能被称为主动/被动,因为只使用一个节点 - 并获得许可。
只要获得正确的许可,就可以将 SQL Server 的另一个实例安装到群集上 - 这称为实例堆叠。它可能像 SQLServerA 一样在节点 1 上运行,但也可能在节点 2 上运行 - 它是独立的。如果它在节点 2 上,则群集可能称为主动/主动。
就这样继续下去 - 您可以安装更多 SQL Server 实例 - 并且您可以添加更多节点(如果您的 SQL Server 和 Windows 版本允许)。可用性高,但管理起来却越来越复杂。