你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

停止和启动实例 - Azure SQL 托管实例

适用于:Azure SQL 托管实例

本文介绍如何在使用 Azure SQL 托管实例时停止和启动实例以节省账单费用。 可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 停止和启动实例。

注意

托管实例的停止和启动功能仅适用于常规用途服务层级中的 SQL 托管实例。

概述

若要节省账单费用,可以在不使用常规用途托管实例时停止它。 停止实例类似于取消分配虚拟机。 实例处于停止状态时,无需支付计算和许可费用,但仍需支付数据和备份存储费用。

停止托管实例会清除所有缓存数据。

此功能引入了三种新的托管实例状态,如下图所示:




- 正在停止
- 已停止
- 正在开始

显示 SQL 托管实例部署的各种状态的示意图。

发起停止操作后,通常需要大约 5 分钟才能停止实例。 但是,发起启动操作后,启动实例需要大约 20 分钟。 只能停止处于就绪状态的托管实例。 停止实例后,它会保持已停止状态,直到发起启动操作(手动发起或通过已定义计划触发)。 只能启动处于已停止状态的实例。

创建托管实例、开始已停止的托管实例或针对托管实例重设大小(例如更改服务层级、存储、硬件生成或 vCore 数),Azure 会将计算资源分配给基础虚拟群集。 虽然我们有对额外基础设施的持续投资来支持客户需求,但特定区域中 Azure 服务需求前所未有的增长可能会偶尔出现资源分配故障。 这可能会导致长时间的操作持续时间(如果存在新的虚拟群集扩展则约为 4 小时,具体依照管理操作持续时间)或启动实例失败(在这种情况下,应稍后重试)。

重要

作为平台即服务 (PaaS) 服务,SQL 托管实例负责系统组件的每一部分的合规性。 如果系统需要紧急维护,要求实例联机,则 Azure 可以发起启动操作,并保持实例联机,直到维护操作完成,此时 Azure 会停止实例。 实例处于联机状态的全部时间都会收取计算和许可证费用。

操作类型

可以通过两种方法来停止和启动实例:手动按需或通过创建计划。

手动命令

可以使用手动命令立即触发停止和启动操作。 手动命令适用于长时间不活动且具有常规模式的实例,也适用于测试。 或者,你也可以使用 Azure 自动化计划或任何创建更灵活的自定义计划(无法通过使用 SQL 托管实例中内置的停止和启动计划程序进行设置)的自定义解决方案。

计划的命令

触发停止或启动操作时,还可以创建包含一个或多个多时间点的计划。 计划命令适用于具有常规模式的实例,例如在每个工作日上午 8 点启动实例,下午 5 点停止实例,然后在周末上午 7 点启动实例,上午 11 点停止实例。 计划命令无需创建自定义解决方案或 Azure 自动化来创建停止和启动计划。

计划项表示发起停止和启动事件时的时间点,而不是实例启动并运行时的时间点。 创建计划时,请考虑操作持续时间。 例如,如果希望实例在上午 8 点启动并运行,可以定义计划以在上午 7:40 发起启动操作。

针对停止和启动计划,请考虑以下规则:

  • 计划项被定义为停止和启动对,且必须同时填充停止和启动值。 无法仅填充停止值而不填充启动值,反之亦然。
  • 计划对不能有重叠。 如果计划时间有重叠,API 将返回错误。
  • 任何两个连续操作(即停止后启动或启动后停止)之间的时间跨度必须至少为一小时。 例如,如果计划在上午 10 点启动,则不能计划在上午 11 点之前进行停止操作。
  • 如果触发停止时存在冲突操作(例如正在缩放 vCore),则该机制将在 10 分钟后重试。 如果 10 分钟后冲突操作仍然处于活动状态,则跳过停止操作。

计费

对于停止的实例,不收取 vCore 和 SQL 许可证费用,只收取数据和备份存储费用。 但是,vCore 和许可证费用按每启动小时计费一次。 例如,在 12:01,即使实例在一小时内停止,也将收取整个小时的费用。

Azure 混合权益

Azure 混合权益 (AHB) 按资源应用。 如果实例使用 Azure 混合权益来节省许可成本,则要在实例处于已停止状态时将该权益应用到另一个资源,必须先禁用实例上的 AHB,然后停止该实例。 同样,在重新启动该实例后,必须在其上重新启用 AHB 以应用许可权益。

预留实例定价

预留实例定价(预留容量)与触发的 vCore 数和小时数相关。 符合预留定价条件的实例停止时,预留定价会自动重定向到另一个实例(如果存在)。 可以使用停止和启动功能过度预配预留实例定价。

例如,假设你购买了一个预留容量为 16 个 vCore 的托管实例。 可以在下午 1 点到下午 2 点运行两个具有 8 个 vCore 的实例,停止两个实例,然后从下午 2 点到下午 3 点运行两个具有 8 个 vCore 的不同实例。 此方法将每小时消耗 16 个 vCore 限制,总共分布在四个实例之间。

预留折扣以“使用或丢失”为基础提供。 也就是说,如果指定小时没有匹配的资源,则会丢失该小时的预留数量。 未使用的预留小时数不能结转。

停止和启动功能的限制

请考虑以下限制:

  • 无法停止具有以下情况的实例:
  • 当托管实例处于停止状态时,无法更改其配置属性。 若要更改任何属性,必须启动实例。
  • 实例处于停止状态时,无法进行备份。 例如,假设你配置了长期备份,并已设置年度备份。 如果在定义的年度备份期间停止实例,则会跳过备份。 建议在年度备份期间保持实例正常运行。
  • 启动停止或启动操作后,无法取消该操作。

先决条件

若要使用实例停止和启动功能,实例必须满足以下先决条件:

  • 实例必须位于启用了 2022 年 11 月功能波次的子网中。
  • 实例必须位于常规用途服务层级中。

不符合先决条件的实例不会在 SQL 托管实例资源的“概述”页面上看到停止和启动控件。

准备命令行环境

如果使用的是 Azure 门户,请跳过此步骤。

如果要使用 PowerShell 或 Azure CLI 停止或启动实例,则需要通过配置命令行工具以及定义参数来准备环境。

或者,若要配置命令行工具,也可以使用 Azure Cloud Shell,这是免费的交互式 shell,可用于运行本文中的步骤。 它预安装有常用 Azure 工具并将其配置与帐户一起使用。 如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

若要打开 Cloud Shell,请从代码块的右上角选择试一试。 也可以通过转到 https://shell.azure.com 在单独的浏览器标签页中启动 Cloud Shell。

若要使用 PowerShell 停止和启动实例,可以安装 Azure PowerShell,或使用 Azure Cloud Shell。

当 Cloud Shell 打开时,请验证是否为环境选择了“PowerShell”。 后续会话在 PowerShell 环境中使用 Azure CLI。 选择复制以复制代码块,将其粘贴到 Cloud Shell 中,然后按 Enter 来运行它。

启动 PowerShell 或 Cloud Shell 后,定义参数:

$SubscriptionId = "<Subscription-ID>"
$SqlMIName = "<SQL-MI-name>"
$RgName = "<SQL-MI-resource-group>"

# Login-AzAccount
Select-AzSubscription -SubscriptionName $SubscriptionID

停止托管实例

可以使用以下服务停止实例:

  • Azure 门户
  • PowerShell
  • Azure CLI
  • 通过任何工具调用 REST API 调用

若要使用 Azure 门户停止托管实例,请转到实例的“概述”页并选择“停止”按钮。

Azure 门户托管实例“概述”页面的屏幕截图,其中突出显示了“停止”按钮。

如果实例已停止,则“停止”按钮不可用。

启动托管实例

可以使用以下服务启动实例:

  • Azure 门户
  • PowerShell
  • Azure CLI
  • 通过任何工具调用 REST API 调用

停止托管实例后,若要启动它,可以使用 Azure 门户,请转到实例的“概述”页并选择“启动”按钮。

Azure 门户托管实例“概述”页面的屏幕截图,其中突出显示了“启动”按钮。

如果实例已启动,则“启动”按钮不可用。

管理停止和启动计划

可以使用以下服务管理停止和启动计划:

  • Azure 门户
  • PowerShell
  • Azure CLI
  • 通过任何工具调用 REST API 调用

若要使用 Azure 门户管理停止和启动计划,请转到实例,然后在资源菜单中选择“启动/停止计划”

托管实例的“启动/停止计划”页面的屏幕截图。

在“启动/停止计划”窗格上,可以执行以下操作:

  • 查看现有计划。
  • 在“时区”下拉列表中指定计划事件的时区。
  • 选择“创建计划项”以新建计划。
  • 选择铅笔图标以修改现有计划。
  • 选择垃圾桶图标以删除现有计划。

注意

当前,活动日志仅捕获通过 Azure 资源管理器 (ARM) 启动的操作。 活动日志中不会跟踪计划的启动和停止操作。 因此,目前无法通过 Azure 门户中的活动日志或通过基于此类日志的任何监视来查看计划的启动和停止操作的历史记录。

后续步骤