目录
- Azure 上的数据库服务的演变
- Azure SQL 部署选项
- Azure 虚拟机上的 SQL Server
- IaaS 与PaaS
- 无版本数据库服务
- SQL 托管实例
- SQL 数据库
- 弹性数据库池
Azure 上的数据库服务的演变
Azure SQL 是 Microsoft 作为 Azure 云计算平台的一部分提供的云数据库产品/服务。 与其他版本的 SQL Server 不同,你无需为 Azure SQL 预配硬件、执行安装或进行安全修补;Microsoft 为你维护该平台。 你也不需要为可伸缩性、高可用性或灾难恢复设计数据库安装,因为服务自动提供这些功能。 使用 Azure SQL 的任何应用程序都必须具有 Internet 访问权限才能连接到数据库。
此解释仍然有效,但与安全性、性能、可用性和规模相关的功能已大幅增强。 多年来,Azure SQL 已演变为包括 Azure 虚拟机、托管实例和多个数据库选项。 现在有多个部署选项,可以灵活地根据需要进行缩放。 某种形式的 Azure SQL 已经部署了 700 多万次。 Azure SQL 的体系结构也在不断发展,以满足不断增长的应用程序需求。 例如,2014 年推出的体系结构为弹性数据库池、vCore 选择、业务关键部署、超大规模和无服务器体系结构等新可能性奠定了基础。
自 2008 年以来,SQL Server 和 Azure SQL 已发展为具有更高可用性、可伸缩性和性能,可以满足任何应用程序的需求。 所提供的数据库服务已从 SQL Server 进行扩展,现在包括 Azure Database for PostgreSQL 和 Azure Database for MariaDB 等开放源代码数据库。
Windows Azure 的推出
在 2008 年的 Microsoft 专业开发人员大会上,Microsoft 当时的首席软件架构师 Ray Ozzie
宣布推出新云计算操作系统:Microsoft Azure。 Azure 服务平台推出的五个关键组件之一是 Microsoft SQL 服务。
从一开始,SQL 就已经是 Azure 的重要组成部分。 创建 SQL Azure 的目的在于提供 SQL Server 的云托管版本。
Windows Azure 后来被重命名为 Microsoft Azure,SQL Azure 被重命名为 Azure
SQL,并且自那时以来,两者都大幅扩展了服务范围。
Azure SQL 部署选项
Azure 虚拟机上的 SQL Server
虚拟机上的 SQL Server 是在 Azure VM 中运行的 SQL Server 版本。 它就是 SQL Server,因此,尽管 Azure 可以帮助自动执行备份和安全修补,但你的所有 SQL Server 技能都应能够直接应用。 Azure 虚拟机上的 SQL Server 被称为基础结构即服务 (IaaS)。 你负责更新和修补 OS 及 SQL Server(关键 SQL Server 安全修补程序除外),但你可以访问 SQL Server 的全部功能。
若要以最佳方式部署和管理虚拟机上的 SQL Server,需考虑以下注意事项:
从预安装的 Azure 库映像部署特定 SQL Server 和操作系统版本。 如果在 Azure VM 上自行安装 SQL Server,则可以利用 SQL Server IaaS 代理扩展来灵活地获得许可并启用自动备份和更新。
考虑内存优化或存储优化虚拟机大小,以实现最佳性能。
使用正确的存储配置,并利用 Azure Blob 存储读取缓存。
使用 Azure 虚拟网络将虚拟机集成到本地网络。
利用自动备份、到 Azure Blob 存储的备份以及与 Azure 备份的集成。
Azure 高级文件共享支持 Always On 故障转移群集实例。
Always On 可用性组受到支持,包括 Cloud Witness。
IaaS 与PaaS
虚拟机上的 SQL Server 被视为 IaaS。 Azure SQL 平台中的其他部署选项、Azure SQL 托管实例和 Azure SQL 数据库都是平台即服务 (PaaS) 部署。 这些 PaaS Azure SQL 部署选项包含一个完全托管的数据库引擎,该引擎可自动执行大部分数据库管理功能,例如升级、修补、备份和监视。 下面是 SQL 托管实例和 SQL 数据库的一些关键功能:
业务连续性使你的业务在面临中断的情况下仍能继续运行。
高可用性,可确保数据库在 99.99% 的时间内正常运行, 无需担心维护或故障时间问题。
自动备份,创建自动备份并使用 Azure 读取访问异地冗余存储 (RA-GRS) 提供异地冗余。
长期备份保留让你可以将特定完整数据库存储最长 10 年时间。
异地复制,通过在相同或不同的数据中心(区域)中创建数据库的可读副本实现。
可伸缩性让你可轻松添加更多资源(CPU、内存、存储),无需进行长时间预配。
网络安全功能,保护你的网络数据。 这些功能包括用于限制连接的防火墙、用于确保数据不向 Internet 公开的 Azure 专用链接,以及用于与本地环境连接的虚拟网络集成。
“高级安全”可检测数据库中的威胁和漏洞,并使你能够保护数据。
自动优化,可分析工作负载。 它提供了可以优化应用程序性能的建议:添加索引、删除未使用的索引以及自动修复查询计划问题。
“内置监视”功能使你可以深入了解数据库和工作负载的性能,并对性能问题进行故障排除。
内置智能,可自动识别工作负载中的潜在问题,并提供建议以帮助修复这些问题。
无版本数据库服务
IaaS 和 PaaS 之间的另一个显著区别是“无版本 SQL”。 与绑定到特定 SQL Server 版本(例如 SQL Server 2019)的 IaaS 不同,SQL 数据库和 SQL 托管实例是无版本的。 SQL Server 引擎代码库的主要“分支”为 SQL Server 2019、SQL 数据库和 SQL 托管实例提供支持。
尽管每隔几年就要发布一次 SQL Server 版本,但 PaaS 服务允许 Microsoft 持续更新 SQL 数据库/实例。 Microsoft 会适当推出修补程序和功能。 作为服务的使用者,你无法对这些更新进行控制,并且 @@VERSION 的结果不会与特定 SQL Server 版本保持一致。 但是无版本 SQL 允许对基础 OS 和 SQL Server 进行无忧安全修补,并且 Microsoft 可以为你提供最新更新。
随着新功能的开发,部分客户可以通过个人预览版在特定功能公开发布前获得其访问权限。 这些新功能随后会在公共预览版中提供。 公共预览版允许每个人访问新功能,但所提供的支持通常有限,并经常打折。
SQL 托管实例
SQL 托管实例是 Azure SQL 的 PaaS 部署选项。 它可为你提供 SQL Server 实例,但省去了许多管理虚拟机的开销。 SQL 托管实例提供 SQL Server 中可用的大多数功能。 如果客户想要使用实例范围内功能,并且想要在不重新架构应用程序的情况下迁移到 Azure,则此选项是理想选择。 (实例范围内功能是绑定到 SQL Server 实例的功能,而不是绑定到 SQL Server 实例中的数据库的功能。)
SQL 托管实例的实例范围内功能包括 SQL Server 代理、Service Broker、公共语言运行时 (CLR)、数据库邮件、链接服务器、分布式事务(预览版)和机器学习服务。 SQL 托管实例允许访问实例范围内的功能,但你不必担心(也无权访问)OS 或下面的基础结构。
SQL 数据库
SQL 数据库是 Azure SQL 的 PaaS 部署选项,可将 OS 和 SQL Server 实例从用户那里抽离。 借助此部署选项,你可以获取数据库并立即开始开发应用程序。 SQL 数据库也是唯一支持需要无限数据库存储(超大规模)和自动缩放不可预测工作负载(无服务器)的方案的部署选项。 SQL 数据库具有业界最高的可用性 SLA。 它提供与监视和性能相关的其他智能功能,部分原因是 Microsoft 管理实例。
弹性数据库池
Azure SQL 中的三个主要部署选项:虚拟机、托管实例和 SQL 数据库。 对于 SQL 数据库和 SQL 托管实例,如果有多个实例或数据库,则还有其他选项。 这些选项称为弹性数据库池。 借助弹性数据库池,你可在多个实例和数据库之间共享资源并优化成本。
借助 SQL 数据库弹性池,你可以在一组预配的 SQL 数据库资源中托管许多数据库。 此选项是软件即服务 (SaaS) 应用程序或提供程序的理想选择,因为可以通过简化方式管理和监视许多数据库的性能。
SQL 托管实例池允许托管多个托管实例并共享资源。 你可以预配置计算资源。 这样做可减少总体部署时间,从而使迁移更加轻松。 你还可以在实例池中托管较小的托管实例,而不仅仅是在单个托管实例中托管。 此产品/服务目前提供公共预览版。
Paychex 公司是使用 SQL 数据库弹性数据库池的一个很好例子。 Paychex 是一家人力资本管理公司,为美国和欧洲超过 65 万家企业提供服务。 Paychex 需要一种方法来为每个客户分别进行时间和支付管理并削减成本。 该公司选择了 SQL 数据库弹性数据库池,这可以简化管理并在不同的数据库之间实现资源共享,从而降低成本。