Compartir a través de

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

适用于:Azure SQL 托管实例

本文介绍如何在“常规用途”服务层级上使用 Azure SQL 托管实例时停止和启动实例以节省账单费用。 可以使用 Azure 门户、Azure PowerShell、Azure CLI 或 REST API 停止和启动实例。

注释

停止和启动功能控制计费,不应用作故障排除步骤 重启实例

概述

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

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

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




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

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

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

发生以下作时,Azure 会将计算资源分配给基础虚拟群集:

  • 创建 SQL 托管实例。
  • 启动已停止的 SQL 托管实例。
  • 调整 SQL 托管实例的大小。 例如,更改服务层级、存储、硬件生成或 vCore 数。

虽然不断投资更多的基础结构来支持客户需求,但特定区域中对 Azure 服务需求空前增长的偶尔资源分配失败。 如果存在新的虚拟群集生成(根据 管理作持续时间),则这种情况可能会导致长时间的作持续时间,大约 4 小时。 它还可能导致实例启动失败,在这种情况下,应稍后重试。

重要

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

操作类型

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

手动命令

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

计划的命令

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

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

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

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

账单管理

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

Azure 混合权益

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

停止和启动功能的限制

请考虑以下限制:

  • 实例的停止和启动目前仅适用于“常规用途”服务层级上的实例。
  • 无法停止具有以下情况的实例:
  • 虽然 SQL 托管实例处于停止状态,但无法更改其配置属性。 若要更改任何属性,必须启动实例。
  • 实例处于停止状态时,无法进行备份。 例如,假设你配置了长期备份,并已设置年度备份。 如果在定义的年度备份期间停止实例,则会跳过备份。 建议在年度备份期间保持实例正常运行。
  • 启动停止或启动作后,无法取消它。
  • 如果在停止实例时为 SQL 托管实例计划漏洞评估扫描,则扫描执行会失败。
  • 对于处于停止状态的实例,不会发送维护通知。 结果是:
    • 通知序列不完整。 例如,不会发送 高级通知 ,同时发送 正在进行的通知
    • 通知内容中受影响的资源列表中缺少 SQL 托管实例。
  • SQL 托管实例中可用的错误日志 不会持久化 ,并在实例停止时自动清除。

先决条件

你的实例必须位于“常规用途”服务层级上,才能使用实例停止和启动功能。

不符合此先决条件的实例,Azure 门户的 SQL 托管实例资源的“概述”页面上,其停止和启动控件处于禁用状态。 将鼠标悬停在控件上可解释实例为何无法使用停止和启动功能。

准备命令行环境

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

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

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

启动 PowerShell 后,定义参数:

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

# Login-AzAccount -Environment AzureChinaCloud
Select-AzSubscription -SubscriptionName $SubscriptionID

停止 SQL 托管实例

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

  • Azure 门户
  • PowerShell
  • Azure CLI (命令行界面)
  • 通过任何工具调用的 REST API 调用

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

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

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

启动 SQL 托管实例

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

  • Azure 门户
  • PowerShell
  • Azure CLI (命令行界面)
  • 通过任何工具调用的 REST API 调用

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

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

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

管理停止和启动计划

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

  • Azure 门户
  • PowerShell
  • Azure CLI (命令行界面)
  • 通过任何工具调用的 REST API 调用

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

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

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

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

注释

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