Compartir a través de

如何管理超大规模数据库

适用于:Azure SQL 数据库

“超大规模”服务层级提供了一个高度可缩放的存储和计算性能层,它利用 Azure 体系结构来横向扩展 Azure SQL 数据库的存储和计算资源,远远超出了“常规用途”和“业务关键”服务层级的可用限制。 本文介绍如何执行超大规模数据库的基本管理任务,包括将现有数据库迁移到超大规模、将超大规模数据库还原到不同的区域、从超大规模反向迁移到另一个服务层级,以及监视正在对超大规模数据库进行的操作和最近的操作状态。

了解如何在快速入门:在 Azure SQL 数据库中创建超大规模数据库中创建新的超大规模数据库。

提示

2023 年 12 月针对 SQL Database(超大规模)的简化定价。 有关详情,请查看超大规模定价博客

将现有数据库迁移到超大规模

可以使用 Azure 门户、Azure CLI、PowerShell 或 Transact-SQL 将 Azure SQL 数据库中的现有数据库迁移到超大规模。

将现有数据库移动到超大规模所需的时间包含复制数据所需的时间,以及在复制数据期间重播在源数据库中进行的更改所需的时间。 数据复制时间与数据大小成正比。 建议在写入活动较少的时间段内迁移到超大规模,这样重播累积更改所需的时间就会缩短。

在最终直接转换为“超大规模”服务层级期间,只会出现很短的停机时间,通常是几分钟。

先决条件

要将作为异地复制关系的一部分的数据库(作为主数据库或辅助数据库)移动到超大规模,需要先终止主副本和辅助副本之间的数据复制。 故障转移组中的数据库必须先从组中删除。

将数据库移动到“超大规模”后,你可以为该数据库创建新的“超大规模”异地副本。

不支持从基本服务层直接迁移到“超大规模”服务层级。 若要执行此迁移,请先将数据库更改为“基本”以外的任何服务层级(例如“常规用途”),然后继续迁移到“超大规模”。

如何将数据库迁移到“超大规模”服务层级

要将 Azure SQL 数据库中的现有数据库迁移到“超大规模”服务层级,请先确定目标服务目标。 如果不确定哪个服务目标适合数据库,请查看单一数据库的资源限制。 在许多情况下,可以选择与原始数据库具有相同的 vCore 数目和相同的硬件代系的服务目标。 如果需要,可以在最短的停机时间内更改服务目标

选择你的首选工具的选项卡来迁移数据库:

使用 Azure 门户,可以通过修改数据库的定价层迁移到“超大规模”服务层级。

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

  1. 导航到要在 Azure 门户中迁移的数据库。
  2. 在左导航栏中,选择“计算 + 存储”。
  3. 选择“服务层”下拉列表,展开服务层级的选项。
  4. 从下拉列表菜单中选择“超大规模(按需可缩放存储)”。
  5. 查看列出的“硬件配置”。 如果需要,可以选择“更改配置”,为工作负载选择适当的硬件配置。
  6. 如果要更改“超大规模”服务层级下适用于数据库的 vCore 数目,请选择“vCores”滑块。
  7. 如果要更改“超大规模”服务层级下的副本数,请选择“High-AvailabilitySecondaryReplicas”滑块。
  8. 选择应用

当操作正在进行时,你可以监视超大规模数据库的操作

从超大规模反向迁移

通过反向迁移到“常规用途”服务层级,最近将 Azure SQL 数据库中的现有数据库迁移到“超大规模”服务层级的客户可以在紧急情况下迁移回来,前提是超大规模无法满足他们的需求。 虽然反向迁移是由服务层级更改发起的,但它本质上是不同体系结构之间的数据规模的移动。

反向迁移的限制

反向迁移在以下条件下适用:

  • 反向迁移仅在原始迁移到超大规模的 45 天内可用。
  • 最初在“超大规模”服务层级中创建的数据库不符合反向迁移的条件。
  • 只能反向迁移到常规用途服务层级。 从“超大规模”迁移到“常规用途”可以是无服务器或预配的计算层。 如果要将数据库迁移到另一个服务层级(例如业务关键基于 DTU 的服务层级),请先反向迁移到“常规用途”服务层级,然后更改服务层级。
  • 不支持反向迁移到少于 2 个 vCore 的数据库。 迁移完成后,可以将数据库缩减到少于 2 个 vCore。
  • 不支持从弹性池或到弹性池的直接反向迁移。 只能将超大规模单一数据库反向迁移到常规用途单一数据库。
    • 如果超大规模数据库是超大规模弹性池的一部分,则必须先将其从超大规模弹性池中删除,然后再进行反向迁移。
    • 反向迁移完成后,可以选择将常规用途的单一数据库添加到常规用途弹性池(如果需要)。
  • 对于不符合反向迁移条件的数据库,从“超大规模”迁移到非“超大规模”服务层级的唯一方法是,使用 bacpac 文件或其他数据移动技术(批量复制、Azure 数据工厂、Azure Databricks、SSIS 等)进行导出/导入。不支持从 Azure 门户、PowerShell(使用 New-AzSqlDatabaseExport 或 New-AzSqlDatabaseImport)、Azure CLI(使用 az sql db export 和 az sql db import)以及从 REST API 进行 bacpac 导出/导入。 支持使用 SSMS 和 SqlPackage 版本 18.4 及更高版本对较小的超大规模数据库(最多 150 GB)进行 bacpac 导入/导出。 对于较大的数据库,bacpac 导出/导入可能需要很长时间,并且可能会因各种原因失败。

持续时间和停机时间

与“超大规模”中的常规服务级别目标更改操作不同,迁移到“超大规模”和反向迁移到“常规用途”是数据规模的操作。

反向迁移操作的持续时间主要取决于数据库的大小以及在迁移期间发生的并发写入活动数量。 你分配给目标常规用途数据库的 vCore 数目也会影响反向迁移的持续时间。 我们建议,为目标常规用途数据库预配的 vCore 数目大于或等于分配给源超大规模数据库的 vCore 数目,以维持类似的工作负载。

在反向迁移期间,如果负载很大,源超大规模数据库可能会出现性能下降。 具体而言,系统可能会降低(限制)事务日志速率,以确保反向迁移正常进行。

在最终直接转换为新的目标常规用途数据库期间,只会出现较短的停机时间,通常是几分钟。

先决条件

在启动从“超大规模”到“常规用途”服务层级的反向迁移之前,必须确保数据库符合反向迁移的限制,并且:

  • 数据库没有启用异地复制。
  • 数据库没有命名副本。
  • 数据库(分配的大小)足够小,可以装入目标服务层级。
  • 如果为目标常规用途数据库指定了最大的数据库大小,请确保数据库的已分配大小足够小,可以适应该最大大小。

在反向迁移操作开始之前,会进行先决条件检查。 如果不满足先决条件,反向迁移操作将立即失败。

备份策略

配置的保留期内,你将为所有现有数据库备份支付使用常规定价收取的费用。 你将为超大规模备份存储快照和必须保留的数据大小存储 blob 支付费用,这样才能还原备份。

你可以将数据库迁移到“超大规模”,并多次反向迁移回“常规用途”。 只有数据库当前层级和上一层级的备份才可用于还原。 如果你已从“常规用途”服务层级迁移到“超大规模”,然后又迁移回“常规用途”,那么只有来自当前常规用途数据库和上一个“超大规模”数据库的备份可用。 这些保留的备份根据 Azure SQL 数据库的计费方式计费。 以前尝试的任何层级都没有可用备份,并且不会计费。

例如,可以在超大规模和非超大规模服务层级之间迁移:

  1. 常规用途
  2. 迁移到超大规模
  3. 反向迁移到常规用途
  4. 服务层级更改为业务关键
  5. 迁移到超大规模
  6. 反向迁移到常规用途

在这种情况下,唯一可用的备份来自时间线的第 5 步和第 6 步(如果备份仍在配置的保留期内)。 以前的步骤中的任何备份都不可用。 尝试在“超大规模”和“常规用途”服务层级之间反复迁移相同的数据库时,请慎重考虑备份的可用性。 启动反向迁移后,早于上一个数据库的数据库备份会立即变得不可用,即使取消迁移,仍然不可用。

如何将超大规模数据库反向迁移到“常规用途”服务层级

若要将 Azure SQL 数据库中的现有超大规模数据库反向迁移到“常规用途”服务层级,请先确定“常规用途”服务层级中的目标服务目标,以及是否要迁移到预配的或无服务器计算层。 如果不确定哪个服务目标适合数据库,请查看单一数据库的资源限制

如果要在反向迁移到常规用途后执行其他服务层级更改,请同时确定最终目标服务目标,并确保数据库的已分配大小足够小,可以容纳在该服务目标中。

选择你的首选方法的选项卡来反向迁移数据库:

使用 Azure 门户,可以通过修改数据库的定价层反向迁移到“常规用途”服务层级。

Azure SQL 数据库中超大规模数据库的“计算 + 存储”面板的屏幕截图。

  1. 导航到要在 Azure 门户中迁移的数据库。
  2. 在左导航栏中,选择“计算 + 存储”。
  3. 选择“服务层”下拉列表,展开服务层级的选项。
  4. 从下拉列表菜单中选择“常规用途(可缩放的计算和存储选项)”。
  5. 查看列出的“硬件配置”。 如果需要,可以选择“更改配置”,为工作负载选择适当的硬件配置。
  6. 如果要更改“常规用途”服务层级下适用于数据库的 vCore 数目,请选择“vCores”滑块。
  7. 选择应用

监视超大规模数据库的操作

你可以使用 Azure 门户、Azure CLI、PowerShell 或 Transact-SQL 监视正在对 Azure SQL 数据库进行的操作或最近已完成的操作的状态。

选择你的首选方法的选项卡来监视操作。

当迁移、反向迁移或还原等操作正在进行时,Azure 门户会显示 Azure SQL 数据库中数据库的通知。

Azure SQL 数据库中的数据库的“概述”面板的屏幕截图。一个有关正在进行的操作的通知显示在面板底部的通知区域。

  1. 在 Azure 门户中导航到数据库。
  2. 在左侧导航栏中,选择“概述”。
  3. 查看右窗格底部的“通知”部分。 如果操作正在进行,将显示一个通知框。
  4. 选中通知框可以查看详细信息。
  5. 此时将打开正在进行的操作窗格。 可以查看正在进行的操作的详细信息。

查看“超大规模”服务层级中的数据库

将数据库迁移到“超大规模”或重新配置“超大规模”服务层级中的数据库后,可能需要查看和/或记录超大规模数据库的配置。

Azure 门户显示了逻辑服务器上所有数据库的列表。 定价层列包括每个数据库的服务层级。

屏幕截图:Azure SQL 数据库中逻辑服务器的概述面板,数据库位于面板底部。

  1. 在 Azure 门户中导航到逻辑服务器
  2. 在左侧导航栏中,选择“概述”。
  3. 滚动到窗格底部的资源列表。 该窗口将显示逻辑服务器上的 SQL 弹性池和数据库。
  4. 查看“定价层”列以标识“超大规模”服务层级中的数据库。

在以下文章中详细了解超大规模数据库: