Azure SQL 功能
- 15 分钟
借助 Azure SQL 产品,除了 SQL 数据库引擎中包含的所有功能外,还受益于许多特定于 Azure 的功能,以帮助自动管理、保护数据、监视性能、缩放资源并确保发生灾难时数据库的可用性。
本单元更深入地探讨 Azure SQL 系列中产品可用的一些特性和功能。
业务连续性
Azure SQL 产品通过本地冗余提供内置可用性,确保企业在面临中断时继续运营。 默认可用性解决方案旨在确保提交的数据不会因故障而丢失,维护作将对工作负荷的影响降到最低,并且数据库不是软件体系结构中的单一故障点。
默认情况下,Azure SQL 产品可确保数据库、实例或虚拟机处理中断,例如:
- 由客户发起的管理操作(这些操作导致了短暂的停机时间)
- 服务维护操作
- 以下对象的问题:
- 为服务提供支持的计算机所在的机架
- 托管 SQL 数据库引擎的物理计算机
- SQL 数据库引擎的其他问题
- 其他可能出现的计划外本地中断
请务必在应用程序中使用重试逻辑来处理这些作期间可能发生的暂时性错误。
Azure SQL 数据库和 Azure SQL 托管实例的服务层之间的可用性机制有所不同。 例如,业务关键服务层级依赖于基础 AlwaysOn 可用性组技术来提供在发生故障时可用于故障转移的副本,而“常规用途”服务层级则使用远程存储的冗余来提供可用性。
虽然为 PaaS 服务内置了可用性,但需要将虚拟机部署到可用性集,以实现 Azure VM 的相同可用性。 还可以使用现有的 SQL Server 高可用性和灾难恢复(HADR)解决方案(如 AlwaysOn 可用性组)进一步保护在 Azure VM 上运行的 SQL Server 实例。
高可用性
您还可以通过为服务启用区域冗余来实现高可用性,使您的数据在整个区域发生故障时具有更强的抗风险能力。 如果没有区域冗余,故障转移会在本地发生在同一数据中心内,这可能会导致数据库、实例或虚拟机在中断解决之前不可用。 区域冗余可用性可确保数据分布在主要区域中的三个 Azure 可用性区域。 每个可用性区域都是一个独立的物理位置,具有独立的电源、冷却系统和网络。
使用 Azure SQL 数据库和 Azure SQL 托管实例,可以随时启用区域冗余,但需要将 Azure VM 部署到可用性区域以实现区域冗余-或使用 Azure Site Recovery 迁移到可用性区域。
区域冗余在三种产品中具有不同的可用性和可支持性,因此请查看部署的区域冗余规范,以确保所选解决方案满足需求。
自动备份
数据库备份是任何业务连续性和灾难恢复策略的基本组成部分,因为数据库备份可以帮助保护数据免遭损坏或删除。
由于 Azure SQL 数据库和 Azure SQL 托管实例是 PaaS 服务,因此在部署服务后,会自动为你管理备份。 每周执行完整备份,每 12 小时执行差异备份,事务日志备份大约每 10 分钟执行一次。 默认情况下,这些备份存储在读取访问异地冗余存储(RA-GRS)中,这意味着备份将复制到次要区域。 此复制可确保即使主要区域不可用,备份也可用。
然后,可以使用备份将数据库还原到过去 35 天内的某个时间点。 还可以使用长期备份保留将备份存储在单独的存储帐户中长达 10 年。
可以为注册到 SQL IaaS 代理扩展的 SQL Server VM 配置自动备份,从而在 Azure 门户中实现 SQL VM 可管理性。 可以选择使用 Azure 备份或自动备份,这两者都允许配置备份的频率和保留期。
自动修补
Azure SQL 数据库和 Azure SQL 托管实例会自动将修补程序应用到基础作系统和 SQL 数据库引擎。 这可确保数据库始终运行最新版本的 SQL Server,并具有最新的安全更新和性能改进。 自动修补功能会自动适用于 Azure SQL 数据库和 Azure SQL 托管实例,但对于注册了 SQL IaaS 代理扩展的 Azure VM 上的 SQL Server,必须手动启用此功能。
使用 SQL Server 2022 更新策略配置的 SQL 托管实例获取 SQL Server 2022 的最新修补程序和更新,而使用 Always-up-to-date 更新策略配置的实例接收最新版本 SQL Server 的修补程序和更新。
安全性
Azure SQL 提供了一套全面的安全和数据治理功能,用于保护数据并确保符合行业标准。
Azure SQL 提供新式身份验证,以确保对数据库的安全访问。 Microsoft Entra Identity Management 允许集中管理组织的标识和控制用户访问,从而提供无缝且安全的方法来对用户进行身份验证。 此功能通过使用 Microsoft Entra 的可靠标识管理功能增强安全性。
数据保护和完整性对于保护敏感信息至关重要。 Azure SQL 提供 透明数据加密(TDE),它使用最新版本的 传输层安全性(TLS)对静态数据进行加密并保护数据。 Azure Key Vault 集成允许管理和控制对加密密钥的访问,确保敏感数据受到保护。 此外, Always Encrypted 可确保敏感数据保持加密状态,保护正在使用的选定列中的数据、运动和静态数据。 这些功能有助于维护数据机密性。 为了进行完整性保护,Azure SQL 包含 账本 功能,该功能为客户的数据提供防篡改证据。
Azure SQL 中的网络安全是通过各种机制实现的。 虚拟网络(VNet)集成 提供专用 IP 地址,并与其他租户完全隔离。 网络安全组(NSG) 和 Azure 防火墙 允许实施高级筛选和控制网络流量。 这些功能可确保数据库免受未经授权的访问和潜在威胁的保护。
Azure SQL 提供基于 SQL 数据分类 和通过 Microsoft 信息保护(MIP) 的数据发现和分类等功能(预览版)的全面数据治理。 分类和标记敏感数据允许数据所有者应用所需的保护措施,并确保它们得到强制执行。
Azure SQL 通过与 Microsoft Defender for SQL 集成提供高级威胁防护和检测功能。 Microsoft Defender 的威胁检测 组件可识别异常数据库活动,并向管理员提供实时警报。 Microsoft Defender 的 漏洞评估 组件可发现、跟踪并帮助客户修复安全保护中可能存在的错误配置或漏洞,这些漏洞可能导致漏洞。 SQL 审核 跟踪数据库活动,并提供用于合规性和取证分析的详细日志。
异地复制
使用 Azure SQL 产品,可以轻松地将数据复制到另一个区域进行灾难恢复,或者通过卸载只读工作负荷(称为读取横向扩展)来提高性能。 异地复制允许在同一数据中心(区域)或其他数据中心(区域)中创建数据库或实例的可读副本。
使用 Azure SQL 数据库,可以在活动异地复制或故障转移组功能之间进行选择。 活动异地复制允许在不同区域中创建数据库多达四个可读副本,而故障转移组是活动异地复制功能之上的抽象副本,使你可以故障转移数据库组、提供终结点重定向并简化故障转移管理。
故障转移组也可用于 Azure SQL 托管实例,可用于创建主实例的辅助副本。
虽然自动故障转移可用于配置有Microsoft托管故障转移策略的故障转移组,但建议使用客户托管故障转移策略更好地控制故障转移行为,并基于Microsoft使用的故障转移条件避免扩展中断,这可能不适合你的业务。
若要使用 Azure VM 上的 SQL Server 实现异地复制,可以在不同区域中的虚拟机之间配置 AlwaysOn 可用性组。
使用这些解决方案中的每一个解决方案,对主数据库的更改都会实时复制到其次要副本。 这意味着,如果主副本不可用,则可以切换到次要副本,并在停机时间最短的情况下继续工作。 还可以使用辅助副本卸载只读工作负载和报告。
可伸缩性
Azure SQL 产品旨在轻松快速地缩放以满足应用程序的需求。 借助 PaaS 服务,无需长时间预配即可轻松添加更多资源(CPU、内存、存储)。 这意味着您可以根据工作负荷要求按需扩展或缩减。 添加更多资源可在数据库达到当前资源限制并需要更多电源处理传入的工作负荷时快速做出反应。 同样,在低活动期间减少资源可以节省成本。
虽然手动启动缩放活动,但 Azure SQL 数据库的无服务器计算层中的数据库可以根据工作负荷需求自动缩放。
还可以在 Azure SQL 数据库和 Azure SQL 托管实例的弹性池中共用资源,以便在多个数据库或托管实例之间共享资源。 这样,就可以通过在高峰性能期间将资源分配到数据库或实例来优化资源利用率。
使用 Azure VM 上的 SQL Server,还可以通过更改 VM 大小根据需要纵向扩展或缩减虚拟机。 但是,这需要比使用 PaaS 服务更多的规划和管理。 需要考虑虚拟机的大小、使用的存储类型和网络配置。 在某些情况下,必须先解除分配 VM。 如果新大小在当前托管 VM 的硬件群集上不可用,则可能需要先解除分配。 请务必了解,即使不需要解除分配,如果虚拟机当前正在运行,更改其大小也会导致重启。 因此,您应将更改 VM 大小视作中断性过程,尤其是对于托管在 VM 上的有状态负载(例如 SQL Server)。
自动优化
自动优化是一项完全托管的智能性能服务,可持续监视对数据库执行的查询,并自动提高性能。 这是通过动态调整数据库以适应不断变化的工作负载并应用优化建议来实现的。 自动优化通过基于 AI 和机器学习的持续性能优化提供峰值性能和稳定的工作负荷。
自动优化建议仅在 CPU 利用率低、数据 I/O 和日志 I/O 时应用。 系统还可暂时禁用自动优化操作以保护工作负载性能。
自动优化适用于 Azure SQL 数据库和 Azure SQL 托管实例,但不适用于 Azure VM 上的 SQL Server。
内置监视和智能
Azure SQL 产品提供内置监视功能,可帮助你了解数据库和工作负荷的性能。
Azure Monitor 使用预定义指标来监视资源消耗和运行状况。 还可以使用 Azure Monitor 基于这些指标创建警报。 Azure Monitor 适用于所有三种 Azure SQL 产品。
数据库观察程序可用于两个 PaaS 服务,可收集深入的工作负荷监视数据,以便详细查看数据库性能、配置和运行状况。 Azure 门户中的仪表板让你从一个单一虚拟管理平台了解 Azure SQL 资产,并详细了解每个受监控的资源。 数据库观察程序目前不适用于 Azure VM 上的 SQL Server。
查询性能见解目前仅适用于 Azure SQL 数据库,为单一数据库和共用数据库提供智能查询分析。 它有助于确定工作负荷中资源消耗最多且运行时间最长的查询。
对于注册到 SQL IaaS 代理扩展的 SQL Server 虚拟机,您可以使用 Azure 门户识别未遵循的最佳实践,以及虚拟机或 I/O 的限流情况。
迁移到 Azure
可以使用 Azure Migrate 大规模发现和评估 SQL 数据资产。 Azure Migrate 为您评估的工作负载推荐理想的 Azure SQL 产品,并提供目标规模调整建议和每月费用估算。 Azure Arc 启用的 SQL Server 实例还具有有助于为迁移做好准备的评估功能。
Azure 数据库迁移服务(DMS)是一项完全托管的服务,可帮助你将数据库迁移到 Azure。 它支持联机和脱机迁移,并可用于从本地 SQL Server、其他云提供程序或其他数据库平台迁移数据库。 可以使用 Azure 数据库迁移服务将数据库迁移到 Azure SQL 数据库、Azure SQL 托管实例或 Azure VM 上的 SQL Server。
Azure SQL 数据库和 Azure SQL 托管实例都支持通过 dacpac 迁移数据,可以在其中将数据库架构和数据导出到 .dacpac 文件,然后将其导入。 对于较小的数据库或仅迁移架构而不是数据,这是一个不错的选择。
除了 DMS,Azure SQL 托管实例也支持通过以下方式进行迁移:
- Log Replay 服务,该服务使用日志传送技术将数据迁移到云。
- 托管实例链接,它使用 AlwaysOn 可用性组技术在 SQL Server 和 Azure SQL 托管实例之间同步数据。
- 本机备份和还原,使你可以将本地 SQL Server 数据库直接备份到 Azure 存储,然后将其还原到 Azure SQL 托管实例。
Azure VM 上的 SQL Server 还支持通过本机备份进行迁移,并通过 Azure 存储进行还原。 还可以在本地和 SQL VM 实例之间配置分布式可用性组以迁移数据。