为 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) 查询。
计划的故障转移 备用副本支持所有计划内故障转移场景,包括恢复演练、将数据库迁移到其他区域,以及将数据库切换回主副本。 当辅助节点切换为主节点时,它可以处理读写查询。 新的辅助实例(原来的主实例)将成为备用副本,不应该用于读取工作负载。
计划外故障转移 在计划外故障转移期间,辅助实例切换到主角色后,它可以同时处理读取和写入查询。 在故障得到缓解且原始主副本重新连接后,它将成为新的辅助待机副本,不应再用于读工作负载。
备份和还原 备用副本和可读辅助数据库副本的备份和还原行为是相同的。
监控 备用副本支持可读辅助副本所支持的所有监控操作。

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

  • 执行维护操作,例如 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. 在概述页面上的基本信息下,查看副本类型。 值 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)等 DBCC CHECKDB。

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

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

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

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

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

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

  • 如果我将主副本或辅助副本纵向扩展到更高的 vCore 大小,会怎样?

    进行纵向扩展时,最佳做法是先扩展辅助节点,再扩展主节点。 尽管在过渡期间辅助副本的 vCore 数量多于主要副本,但备用副本的权益仍然适用。 尽量缩短过渡期。

  • 如果我将主副本或辅助副本缩减到更低的 vCore 大小,会怎样?

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

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

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

  • 是否可以获取备用副本的预留权益?

    Yes. 预留定价与备用副本完全兼容。

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

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