为 Azure SQL 数据库配置免许可备用副本

适用于:Azure SQL 数据库

本文介绍在使用 Azure SQL 数据库时,如何通过指定用于备用的辅助灾难恢复 (DR) 数据库来节省许可费用。

概述

当辅助数据库副本用于灾难恢复,并且没有运行任何工作负载或连接应用程序时,可以通过将数据库指定为备用副本来节省许可费用。 将辅助数据库指定为备用数据库时,Azure 会根据产品许可条款中的故障转移权限权益,免费向你提供授权给主数据库的 vCore 数量。 你仍需为辅助数据库使用的计算和存储资源付费。

可以在配置新的活动异地复制时指定备用副本,也可以将现有副本转换为备用副本。

虽然活动异地复制功能支持添加四个次要副本,但只能指定一个辅助数据库副本作为备用副本。 故障转移组支持每个主数据库一个辅助数据库副本,它可以是可读副本,也可以是备用副本。

在计划内或计划外的故障转移期间,备用副本将成为新的主副本,并开始产生常规 vCore 授权费用,而原始主副本将成为新的备用辅助副本,并停止产生 vCore 授权费用。

成本收益

如果你将数据库副本指定为备用副本,Azure 不会针对备用副本使用的 vCore 向你收取 SQL Server 许可费用。 但是,由于数据库是按整小时计费的,因此,如果在某个小时中间更改状态,则仍可能需要支付整个小时的许可费用。

使用即用即付模式的客户与使用 Azure 混合权益模式的客户之间的权益转换方式不同。 对于即用即付客户,vCore 在发票中享受了折扣。 对于将 Azure 混合权益用于备用副本的客户,次要副本所使用的 vCore 数量会返回到他们的许可池。

例如,作为即用即付客户,如果将 16 个 vCore 分配给辅助数据库,那么当你将辅助数据库指定为仅备用时,发票中会显示 16 个 vCore 的折扣。

在另一个示例中,如果有 16 个 Azure 混合权益许可证,并且你部署了一个具有 16 个 vCore 的数据库,那么在将辅助数据库指定为备用数据库后,16 个 vCore 会返回到许可证池以用于其他 Azure SQL 部署。

功能

下表描述了备用辅助数据库副本的功能:

功能 说明
有限的读取工作负载 将数据库指定为备用数据库后,只能在辅助数据库上运行有限数量的读取工作负载,例如动态管理视图 (DMV)、备份和数据库控制台命令 (DBCC) 查询。
计划的故障转移 备用副本支持所有计划的故障转移方案,包括恢复演练、将数据库重新定位到不同区域以及将数据库返回到主实例。 辅助实例切换为主实例时,它可以处理读取和写入查询。 新的辅助实例(原来的主实例)将成为备用副本,不应该用于读取工作负载。
计划外故障转移 在计划外故障转移期间,辅助实例切换到主角色后,它可以同时处理读取和写入查询。 缓解中断并重新连接原始主实例后,它将成为新的辅助备份副本,不应该用于读取工作负载。
备份和还原 备用副本和可读辅助数据库副本的备份和还原行为是相同的。
监视 备用副本支持可读辅助副本支持的所有监视操作。

备用数据库副本只能用于灾难恢复。 下面列出了仅允许在备用数据库上执行的活动:

  • 执行维护操作,例如 checkDB
  • 连接监视应用程序
  • 运行灾难恢复演练

限制

下表列出了支持的和不支持的部署模型:

部署模型 计算层 服务层 支持的备用副本 硬件
单一数据库 已预配 常规用途 标准系列 (Gen5)、Fsv2 系列、DC 系列
单一数据库 已预配 业务关键 标准系列 (Gen5)、DC 系列
单一数据库 已预配 超大规模 空值 空值
单一数据库 无服务器 全部 空值
弹性池 全部 所有 空值

使用备用数据库具有以下限制:

  • 只能将一个辅助数据库副本指定为备用副本。
  • 不支持无服务器计算层。 如果主数据库或辅助数据库位于无服务器计算层中,则无法启用备用副本。
  • 不支持 DTU 购买模型。 只能为使用 vCore 购买模型的数据库启用备用副本。
  • 不支持“超大规模”服务层级。 只能将“常规用途”和“业务关键”服务层级中的数据库指定为备用数据库。
  • 使用故障转移组时,在数据库级别而不是故障转移组级别分配备用权限,并且必须为故障转移组中的每个数据库单独分配备用权限。
  • 当副本是次要副本的次要副本时(已知链接的过程),不支持指定次要副本作为备用副本。

先决条件

  • Azure 订阅。 如果没有 Azure 试用版订阅,请在开始前创建一个试用版订阅
  • 受支持的硬件上运行的“常规用途”或“业务关键”服务层级中主要预配的 vCore Azure SQL 数据库。 若要开始使用,请查看快速入门

配置新的备用副本

使用 Azure 门户、PowerShell、Azure CLI 或 REST API 配置新的活动异地复制关系时,可以指定备用副本。

若要创建新的活动异地复制关系并在 Azure 门户中指定辅助数据库作为备用数据库,请执行以下步骤:

  1. Azure 门户中,转到 SQL 数据库资源。

  2. 从资源菜单中的“数据管理”下选择“副本”,然后选择“+ 创建副本”以打开“创建 SQL 数据库 - 异地副本”页。

    Azure 门户中 SQL 数据库的“副本”页面的屏幕截图。

  3. 在“创建 SQL 数据库 - 异地副本”页上,在“副本配置”下选择“备用副本”作为“副本类型”。 选中此框以确认将该副本用作备用副本。

    “创建异地副本”页的屏幕截图,其中 Azure 门户中突出显示了备用副本。

  4. 为新的备用数据库提供新的或现有服务器,然后使用“查看 + 创建”对数据库和服务器详细信息进行最终验证。

  5. 使用“创建”确认设置并创建新的备用数据库副本。

注意

你还可以在创建故障转移组时将数据库指定为备用数据库,或者在 Azure 门户中将数据库添加到现有故障转移组

转换现有副本

可以使用 Azure 门户或“复制链接 - 更新”REST API 命令将现有副本从常规异地副本转换为备用副本,或将备用副本转换为常规异地副本。

若要转换 Azure 门户中的现有副本,请执行以下步骤:

  1. 转到 Azure 门户中的 SQL 数据库资源。
  2. 在“数据管理”下选择“副本”
  3. 选择副本的省略号 (...),然后:
    1. 若要将常规副本转换为备用副本,请选择“转换为备用”。 选中“转换为备用副本”弹出窗口上“我确认...”旁边的框,然后选择“”保存更改并转换副本。
    2. 若要将备用副本转换为常规异地副本,请选择“转换为异地”。 选中“转换为异地副本”弹出窗口上“我确认...”旁边的框,然后选择“”保存更改并转换副本。

若要使用 REST API“复制链接 - 更新”命令转换现有副本,请将 linkType 指定为备用副本的 STANDBY,或者使用 GEO 将现有备用副本转换回常规异地副本。

查看许可权限

可以使用 Azure 门户、PowerShell、Azure CLI 或 REST API 查看现有数据库的许可权限。

若要使用 Azure 门户检查现有数据库的许可权限,请执行以下步骤:

  1. Azure 门户中,转到“SQL 数据库”

  2. 在“概述”页上,检查“Essentials”下的“副本类型”。 值 Standby 表示你的数据库是备用副本,并且不会向你收取此数据库的 SQL 许可费用:

    Azure 门户中 SQL 数据库概述页面的屏幕截图,突出显示了副本类型。

删除备用副本

将数据库指定为备用数据库后,不能只删除备用属性。 若要删除备用副本,必须停止复制才能结束活动异地复制关系。 复制操作停止后,数据库将成为独立数据库,并开始产生许可费用。

可以使用 Azure 门户、PowerShell、Azure CLI 或 REST API 停止异地复制。

若要通过在 Azure 门户中结束异地复制操作来删除备用副本,请执行以下步骤:

  1. Azure 门户中,转到“SQL 数据库”
  2. 在“数据管理”下选择“副本”
  3. 为“备用副本”选择省略号(...)然后从弹出菜单中选择“停止复制”。 这会停止复制操作,辅助数据库现在是独立数据库而不是指定为备用数据库,并且会产生许可费用。

常见问题 (FAQ)

  • 对定价有何影响?

    辅助数据库副本需要为 SQL 许可、计算以及数据和备份的存储付费。 将数据库副本指定为备用副本时,不会向你收取次要副本所使用的 vCore 的许可费用,但你仍需为计算和存储付费。

  • 使用备用副本大约可以节省多少费用?

    使用备用副本没有包含的授权费用,相较于常规的完全可读辅助副本可节省约 35-40% 的费用,但具体节省费用因区域而异。

  • 备用副本中有多少个 vCore 是无许可证的?

    与主数据库使用的 vCore 数相同。 为了获得最佳的异地复制性能,建议使用与主数据库相同的 vCore 数配置次要副本。

  • 是否需要拥有提供有效软件保障的 SQL Server 许可证才能使用备用副本?

    否。 由于备用副本不会产生许可费用,因此不需要拥有提供有效软件保障的有效 SQL Server 许可证。

  • 如何使用备用副本?

    备用副本仅用于灾难恢复 (DR) 目的,并且不能运行任何活动的读取工作负载。 唯一可接受的是用于监视、维护的工作负载,例如运行动态管理视图 (DMV) 和 CheckDB。

  • 是否可以将现有的可读次要副本更新为备用副本以节省费用?

    是,在 Azure 门户中的“副本”窗格上。 选择省略号 (...),然后选择用于转换副本的选项。

  • 是否可以为备用副本启用 Azure 混合权益?

    指定备用副本将取代 Azure 混合权益的折扣,因此无法使用 Azure 门户修改副本的许可模型。 但是,如果希望备用副本在故障转移时使用 Azure 混合权益,则可以使用 Set-AzSqlDatabase PowerShell 或 az sql db update Azure CLI 命令将许可证类型更新为 BasePrice(Azure 混合权益),故障转移后备用副本变为主副本时可以使用该许可证类型。

  • 故障转移期间备用副本的状态会发生什么变化?

    在计划内或计划外的故障转移期间,备用副本将成为新的主副本,并开始产生常规许可费用,而原始主副本将成为新的备用辅助副本,并停止产生 vCore 许可费用。 但是,由于实例是按整小时计费的,因此,如果在某个小时中间更改状态,则仍可能需要为新的次要副本支付整个小时的许可费用。 如果原始主要副本(在故障转移后变为备用副本)使用的是 Azure 混合权益,则备用许可折扣将取代数据库使用的 Azure 混合权益。

  • 如果将主要副本或次要副本纵向扩展到更大的 vCore 规模,该怎么办?

    在纵向扩展时,最好先扩展次要副本,然后再扩展主要副本。 尽管在过渡期间辅助副本的 vCore 数量多于主要副本,但备用副本的权益仍然适用。 尽量缩短过渡期。

  • 如果将主要副本或次要副本纵向缩减为更小的 vCore 规模,该怎么办?

    在纵向缩减时,最好先缩减主要副本,然后再缩减次要副本。 尽管在过渡期间辅助副本的 vCore 数量多于主要副本,但备用副本的权益仍然适用。 尽量缩短过渡期。

  • 如果删除主要副本和备用副本之间的异地复制关系,会发生什么?

    删除异地复制后,备用数据库将成为常规的独立数据库,并开始产生许可费用。

  • 创建新的故障转移组或向其添加数据库时,是否可以指定备用副本?

    是,但仅在创建新故障转移组或在 Azure 门户中将数据库添加到现有故障转移组时。 PowerShell 和 Azure CLI 当前不可用。