共用方式為

将现有数据库转换为“超大规模”

适用于:Azure SQL 数据库

可以使用 Azure 门户、Azure CLI、PowerShell 或 Transact-SQL 将 Azure SQL 数据库中的现有数据库转换为“超大规模”。

先决条件

  • 若要将作为主要副本或辅助副本的 异地复制 关系的一部分的数据库转换为“超大规模”,必须先终止主副本和辅助副本之间的异地复制。 必须先从组中删除 故障转移组中的数据库。 将数据库转换为“超大规模”后,可以为该数据库创建新的“超大规模”异地副本,或将该数据库添加到故障转移组。
  • 不支持从基本服务层级直接转换为“超大规模”。 若要执行此转换,请先将数据库更改为“基本”以外的任何服务层级(例如“常规用途”),然后继续转换为“超大规模”。
  • 可以使用 T-SQL 监视转换的进度。 若要在 Azure SQL 数据库上运行 T-SQL 命令,请使用 SQL Server Management Studio (SSMS)sqlcmd 或你喜欢的 T-SQL 查询工具。

转换具有地理复制的数据库(预览)

使用 T-SQL、REST API、PowerShell 或 Azure CLI 将 异地复制 的非超大规模数据库转换为超大规模数据库的功能目前是预览功能。 有关详细信息,请参阅 博客:对异地副本的超大规模转换支持

  • 必须从主异地复制启动到超大规模的转换。
  • 异地辅助副本的数量应减少到一个,因为“超大规模”不支持多个异地辅助副本。
  • 超大规模中不支持创建异地副本的异地副本(也称为“异地副本链”)。 如果存在链式地理复制配置,则必须在开始转换为Hyperscale之前将其删除。
  • 在将异地主数据库转换为超大规模时,无法进行计划的故障转移。 可以强制故障转移到异地次要副本。 但是,根据强制故障转移发生时的转换状态,故障转移后的新异地主数据库可能会使用超大规模服务层级或其原始服务层级。 如果异地主数据库位于弹性池中,则可以将其移动到现有的超大规模弹性池,作为转换的一部分,也可以创建独立的“超大规模”数据库。 但是,如果异地次要数据库位于弹性池中,则转换为超大规模总是会将其移出池。 转换完成后,你可以在单独的步骤中将地理辅助数据库移动到 Hyperscale 弹性池。

直接转换

转换过程分为两个阶段-数据库转换,在现有数据库处于联机状态时发生,然后直接切换到新的“超大规模”数据库。

  • 将现有数据库移动到“超大规模”所需的时间包括复制数据的时间,以及复制数据时重播源数据库中所做的更改的时间。 虽然数据复制时间与数据库的大小大致缩放,但实际复制速度可能会因网络吞吐量、I/O 带宽、存储延迟和暂时性服务负载等因素而异。 建议在写入活动较低的时期转换到“超大规模”,以缩短重播累积更改所需的时间。 建议使用手动割接来控制下一阶段。
  • 你可以选择何时进行切换 - 数据库准备就绪后立即切换,或者在您选择的时间手动切换。 默认情况下,转换为超大规模的过程将自动进行直接转换。
    • 如果选择在您自己选定的时间手动切换,您必须在数据库准备好切换后的 24 小时内启动手动切换。 可以通过 Azure 门户、Azure CLI、PowerShell 或 T-SQL 启动手动切换。
  • 在最终切换到“超大规模”期间,应用程序仅经历短暂的停机时间,通常不到一分钟。

转换过程中有多个阶段,可以通过 Azure CLI(az sql db op list)、PowerShell(Get-AzSqlDatabaseActivity)或使用 T-SQLsys.dm_operation_status)在 Azure 门户(进度报告页上)监视这些阶段。

将数据库从高级或业务关键服务层级转换为“超大规模”时,现有客户端连接在第 1 阶段断开连接。 这类似于在服务层级之间扩展数据库时发生的断开连接。 应用程序应设计为通过实现重试逻辑来正常处理暂时性连接中断,如 针对暂时性错误的重试逻辑中所述。

将数据库转换为Hyperscale

若要将现有 Azure SQL 数据库转换为“超大规模”,请先确定目标服务目标。

如果不确定哪个服务目标适合数据库,请查看 单一数据库的资源限制。 在许多情况下,可以选择一个服务目标,其 vCore 数相同,硬件生成与原始数据库相同。 如果需要,可以稍后 更改服务目标,并将停机时间降到最低。 只有在切换后,超大规模的计费才开始。

选择首选方法的选项卡以转换数据库:

在 Azure 门户中,您可以通过修改数据库的服务层,将其转换为“超大规模”。

Azure SQL 数据库中数据库计算 + 存储面板的屏幕截图。“服务层”下拉列表已展开,显示“超大规模”服务层级的选项。

  1. 导航到希望在 Azure 门户中转换的数据库。
  2. 在左侧导航栏中,选择“计算 + 存储”
  3. 选择 服务层 下拉列表以展开服务层级的选项。
  4. 从下拉列表中选择 超大规模
  5. 查看 计算层级 并选择 预配置无服务器
  6. 查看 切换模式,这是特定于转换为超大规模的选项。
    • 在数据库准备好转换为Hyperscale后进行切换。 切换模式 确定何时将暂时中断与现有 Azure SQL 数据库的连接,以便转换为超大规模。
      • 自动切换 在超大规模数据库准备就绪后立即完成切换。
      • 手动切换 会提示你在 Azure 门户中自行选择时间启动切换。 此选项最适用于安排转换时间,以尽量减少业务中断。
  7. 如果要更改“超大规模”服务层级下数据库可用的 vCore 数,请选择 vCore 滑块。
  8. 如果要更改“超大规模”服务层级下的副本数,请选择 High-Availability 次要副本 滑块。
  9. 选择应用
  10. 在 Azure 门户中监视转换。
    1. 在 Azure 门户中导航到数据库。
    2. 在左侧导航栏中,选择 概述
    3. 查看右窗格底部 通知 章节。 如果操作正在进行,将显示一个通知框。
    4. 选择通知框以查看详细信息。
    5. 此时将打开 正在进行的操作 窗格。 查看正在进行的作业的详细信息。

如果选择了 手动直接转换,Azure 门户将在准备就绪时显示 “直接转换 ”按钮。

Azure 门户中的屏幕截图,显示了“超大规模转换”中的“切换”按钮。