SQL Server AlwaysOn 可用性组许可

Posted

技术标签:

【中文标题】SQL Server AlwaysOn 可用性组许可【英文标题】:SQL Server AlwaysOn Availability Groups Licencing 【发布时间】:2015-09-15 20:37:49 【问题描述】:

我计划在 2 个节点(服务器)之间实施 SQL Server 2014 Always ON 可用性组,并在 WSFC 之上使用 SQL Server Enterprise Edition,Node1 是主副本(读/写),Node2 是辅助副本,数据库正在恢复仅模式,在发生灾难(故障转移)之前不会使用或读取/写入数据

根据文档,SQL 服务器代理应随时在两台服务器上运行,但只有主副本的作业在任何时候使用一些检查执行。

问题1:

我是否必须为节点 1 和节点 2 的许可证付费?

注意:节点 1 将是主节点,节点 2 是辅助节点,只有在发生故障转移时,节点 2 才会变为活动状态,但我将在任何给定时间在两个节点上运行 sql 代理...

问题2:

我是否必须为节点 1 和节点 2 的许可证付费?

如果我在节点 2 上禁用 SQL 代理并在节点 2 上发生故障转移时手动启用 SQL 代理?

【问题讨论】:

【参考方案1】:

不幸的是,Passive failover rights 已随 SQL 2014 更改。虽然这些权利以前是服务器许可证的一部分,但现在只有拥有 Software Assurance 才能拥有这些权利。

被动故障转移权限允许客户在单独的操作系统环境 (OSE) 中运行 SQL Server 的被动实例,而无需被动服务器获得 SQL Server 许可。被动 SQL Server 实例是不向客户端提供 SQL Server 数据或运行主动 SQL Server 工作负载的实例。

见http://blogs.technet.com/b/volume-licensing/archive/2014/05/29/licensing-how-to-sql-2014-licensing-changes.aspx

因此,如果您没有Software Assurance,您可能需要为这两个许可证付费。

我认为您不需要禁用 SQL 代理,只要所有客户端连接和作业(包括备份)仅针对在线数据库运行即可。如果您将多个可用性组配置为一个故障转移而不是另一个需要您许可第二台服务器,我会小心。

【讨论】:

ex: 在节点 1 sql 代理作业“XYZ”每 2 分钟运行一次检查是否为 PRIMARY--然后在节点 2 上执行 SP 相同的作业“XYZ”每 2 分钟运行一次检查是否为 PRIMARY,如果是次要则执行 else什么都不做...在任何给定时间运行 2 个 sql 代理,但只有一个 JOB XYZ 执行 SP... jmc,我们公司确实为 ent.edition 提供了软件保障。现在的问题是,服务器必须获得许可才能拥有活动的 SQL 代理服务,该服务不为客户端提供服务,也不运行任何备份或维护作业,而是按照上述示例进行检查 你可能不应该相信我的话,因为我不为微软工作,但我很确定这不是问题。您不必禁用SQL Server servicepassive failover rights,那么为什么需要禁用SQL Agent?您需要让服务器准备好接管任何故障。已经配置和安排好您的作业是其中的一个重要部分。

以上是关于SQL Server AlwaysOn 可用性组许可的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2016 AlwaysOn 安装及配置介绍

SQL Server AlwaysOn 可用性组许可

SQL Server Alwayson概念总结

SQL Server 2016 Failover +AlwaysOn 增加数据库到可用性组

SQL Server AlwaysOn架构及原理

SQL Server 2022 AlwaysOn新特性之包含可用性组介绍