选择正确的 Azure SQL 数据库功能

已完成

在自行车制造方案中,你已确定并分析了要迁移到 Azure SQL 数据库的数据库。 现在,你要计划迁移,需考虑数据可恢复性、灾难恢复、安全和其他实现细节。

你希望了解在迁移到 Azure SQL 数据库的过程中可用的支持工具和功能。

Azure SQL 数据库的优势

下面汇总了部署单一和弹性池数据库的优点:

类别 功能
备份和恢复 自动备份
时点还原
备份保留 7 天以上
长期备份保留可将备份最多存储 10 年
高可用性 99.99% 可用性保证
具有三个次要副本的内置可用性
通过 Azure 可用性区域实现的区域冗余
灾难恢复 数据库备份的异地还原
Azure 区域之间的活动异地复制
服务可伸缩性 动态纵向扩展和纵向缩减
使用多个分片横向扩展
使用弹性池在数据库之间共享计算资源
安全性 支持 Microsoft Entra 身份验证
仅限云的安全功能,例如高级威胁防护
透明数据加密 (TDE) 默认处于启用状态
支持动态和静态数据掩码、行级别安全性和 Always Encrypted
防火墙允许列表
许可 用于预测性成本计算的 DTU 购买模型
vCore 购买模型,使存储可以独立于计算进行缩放
将 vCore 购买模型与 SQL Server 的 Azure 混合权益相结合,以实现高达 30% 的成本节约

提示

要查看迁移到 Azure SQL 数据库的优点和可用功能,请参阅使用 Azure SQL 部署 PaaS 解决方案模块。

Azure SQL 数据库的专有功能

Azure SQL 数据库支持的某些功能不可用于其他 Azure SQL 产品/服务:

功能 定义
超大规模 云原生体系结构,支持可独立缩放的计算和存储,从而提供比其他层更高的灵活性和更丰富的资源。
自动缩放 具有无服务器计算层
自动优化(索引) 此内置功能可自动识别并创建可提高工作负载性能的索引。 它还会验证查询性能是否已改进,并移除未使用或重复的索引。
弹性查询 支持运行桥接 SQL 数据库中多个数据库的 T-SQL 查询。 此功能对于无法更改的三部分或四部分名称的应用程序非常有用。
弹性作业 弹性作业功能是 Azure SQL 数据库的 SQL Server 代理替代项。 在某种程度上,弹性作业等效于 SQL Server 实例上提供的多服务器管理功能。
SQL 数据同步 借助此功能,可以在 SQL 数据库或 SQL Server 上运行的多个数据库之间以增量方式同步数据。
Query Performance Insights (QPI) 此工具可帮助你查找要优化的查询,以提高整体工作负载性能并有效使用要为其付费的资源。

重要

要了解 SQL 数据库、SQL Server 与 Azure SQL 托管实例之间的其他功能差异,以及不同 Azure SQL 数据库选项之间的区别,请参阅 SQL 数据库功能

支持的迁移选项

可通过两种模式迁移到 Azure SQL 数据库:联机脱机。 联机模式的故障时间最短或没有故障时间,而脱机模式在迁移过程中存在故障时间。

工具 迁移模式
Azure 数据库迁移服务 Offline
事务复制 联机
Azure Migrate Offline
SQL 数据同步 * 脱机
导入导出向导/BACPAC Offline
大容量复制(bcp 实用工具) Offline
Azure 数据工厂 Offline
数据迁移助手 (DMA) Offline

* 可能会对性能产生较大影响,具体取决于工作负载。

注意

虽然数据库迁移助手是一个可用且实用的工具,但我们建议你使用 Azure 数据库迁移服务以开展大型迁移并获取增强的整体体验。

迁移性能

请在迁移到 Azure SQL 数据库时考虑以下建议:

  • 监视源上的数据文件 I/O 和延迟,并缓解任何瓶颈。
  • 将目标 Azure SQL 数据库纵向扩展为业务关键 Gen5 8 vCore,或使用超大规模服务层级将日志文件的延迟降到最低。
  • 确保网络带宽可以适应最大日志引入速率。
  • 选择最高的服务层和计算大小以获得最高传输性能,并在迁移后纵向缩减。
  • 最大程度地缩短 BACPAC 文件和目标数据中心之间的距离。
  • 在迁移期间禁用自动更新和自动创建数据统计。
  • 对表和索引进行分区,删除已编制索引的视图,并在迁移后重新创建它们。
  • 请考虑将很少查询的历史数据迁移到 Azure SQL 数据库中的单独数据库,并使用弹性查询对其进行查询。

重试应用程序连接

迁移到 Azure SQL 数据库时,请务必预测连接到数据库资源时偶尔出现的暂时性故障,并实现适当的重试逻辑方法。 在程序终止之前设置最大重试次数也很重要。

建议在首次重试时至少等待 5 秒。 每一个后续的重试都应该以指数形式增加延迟,最多不超过 60 秒。

注意

如果 SELECT 语句失败并出现 SQL 数据库暂时性错误,请不要直接重试。 请改用新连接中的 SELECT 语句。

要详细了解连接重试主体,请参阅排查 SQL 数据库和 SQL 托管实例中的暂时性连接错误