如何为Azure SQL数据库部署Azure SQL Elastic Pools

1,232 阅读7分钟

本文介绍了Azure SQL数据库的SQL Elastic Pool的概况和部署步骤。

对SQL Elastic Pools的要求

假设你有一个业务需求,为不同的客户配置多个Azure SQL数据库。通常情况下,你为每个客户部署一个数据库,每个数据库都有其服务层,资源。由于不可预测的用户模式,预测数据库的负载是很有挑战性的。在这种情况下,你可能最终会出现资源配置不足或过度配置的情况。账单也发生在单个数据库上。

你需要根据峰值利用率来配置Azure数据库,以便顺利地运行数据库活动。然而,这种过度配置系统资源(按峰值负载)的做法并不符合成本效益,因为大部分时间都有闲置资源的时间。

下面的截图描述了一个周期性高峰的数据库使用模式,而数据库在大部分时间内都是空闲的。

Azure SQL Elastic Pool

假设你已经根据数据库的峰值负荷来配置资源。在这种情况下,你可能为更高的资源付费,但并不是一直在消耗它们。

如果你还有几个具有类似使用模式的数据库,我们可以在多个数据库中共享资源。如下图所示,整体的DTU利用率仍然达到90的峰值。因此,通过在多个数据库之间共享资源,你可以从降低整体成本中获益。其余的数据库则从更高的DTU或vCPU配置中获益,从而提高数据库和应用的性能。

Multiple databases utilization

我们如何在Azure SQL数据库中做这种资源池?让我们在这篇文章中弄清楚。

Azure数据库中的弹性池实现了一种成本效益高的解决方案,适合不可预知的使用需求。这些弹性池可以配置多个具有资源池的SQL数据库。因此,你可以灵活地建立一个高端的数据库服务器,而你的数据库可以根据其工作负载要求来利用。这些弹性池使你能够在不影响性能的情况下优化几个数据库的成本。

注意:Azure不对弹性池中的单个数据库收费,它以最高的vCores或eDTUs对池子存在的每个小时收费。

  • 你可以在vCore或DTU购买模式中配置弹性池
  • 它允许为一个数据库配置最小和最大的资源
  • 数据库可以在弹性池内自动扩展。例如,数据库可以在重载时消耗高资源,而在空闲时消耗最小的分配资源

使用Azure门户为Azure SQL数据库创建一个新的SQL弹性池

要创建一个新的弹性池,请在Azure门户中验证自己,并搜索SQL弹性池。

create an elastic pool

点击超链接-创建SQL弹性池。在弹性池的细节中,输入一个池的名称,如下图所示。

Create SQL Elastic Pool 点击创建一个新的服务器。它会打开另一个创建SQL数据库服务器的页面,需要Azure服务器名称、位置和认证方法。

选择一个选项--使用SQL认证,并指定服务器管理凭证。 如果你已经配置了Azure AD,你也可以选择Azure Active Directory认证。

Server details and authentication

下一个部分是配置计算+存储。默认情况下,它显示为General Purpose Gen5,2个vCores,32GB。

Elastic Pool details

点击配置弹性池,你会得到配置池设置和每个数据库设置的选项。

池子设置。

池的设置需要从基于V-Core和DTU的购买模式中选择一个服务层。

  • 基于V-core的采购模式
    • 一般用途
    • 业务关键型
  • 基于DTU的采购模式
    • 基本型
    • 标准型
    • 高级

Pool Settings and Per database settings

硬件配置取决于所选择的购买模式和服务层级。在这个例子中,我选择的是基于DTU的购买模式和基本服务层。

Server and Compute tier

每个数据库的设置

每个数据库设置可以配置最小和最大资源。你可以用它来配置分配DTU,以避免一个特定的数据库消耗所有或没有的资源。

Per database setting

我的演示中的弹性池配置如下。

Elastic Pool details

其他设置

从下拉列表中指定一个首选的数据库维护窗口。默认值是下午5点到早上8点。

Maintenance Window

在部署前审查你的弹性池配置。

Review pool configuration

点击创建和部署Azure SQL数据库弹性池。

View deployed resources

弹性池仪表板显示资源配置、弹性数据库和弹性数据库设置。如下图所示,弹性池中没有数据库。

Elastic Pool dashboard

要在弹性池中添加一个数据库,你会得到以下两个选项。

  • 点击0数据库。你可以使用这个选项从弹性池中添加或删除数据库。如果你在Azure SQL Server上有一个现有的数据库,你可以从这个选项添加。

Add or remove a database from elastic pool

  • 创建数据库。你可以从这个创建数据库选项中创建一个新的Azure SQL数据库。指定一个新的数据库名称和服务器字段,显示先前配置的Azure服务器。

Backup storage redundancy

如果你部署一个Azure SQL数据库,你可以选择部署模式和服务层。这里可以注意到,在我们为弹性池创建新数据库时,控制台没有得到指定部署模式的选项。

在审查页面,它不显示部署的数据库价格。它统计的是包含在池中的成本。

Estimated cost per month

一旦数据库被部署,你可以在 "当前池中的数据库 "部分查看数据库,如下所示。

View databases in the pool

将现有的Azure SQL数据库添加到SQL弹性池中

假设你在Azure SQL Server中有一个现有的数据库,但不属于弹性池的一部分。你可以将该数据库添加到弹性池中。

点击添加数据库,就会给出Azure SQL Server中存在的不属于弹性池的数据库列表。

view existing servers to add in Azure pool

例如,它显示了一个数据库[azuredemo2]要添加到弹性池中。点击 "保存",它将数据库列在 "准备添加到此池 "选项中。

Ready to add in the pool

点击保存,它开始部署,将Azure SQL数据库添加到弹性池中。 Save for database deployment

下图显示了两个Azure数据库进入弹性池,以及它们的平均eDTU(%)、峰值eDTU(%)和使用的数据空间。

Avg eDTU and Peak eDTU

从SQL弹性池中删除一个数据库

如果需要,我们可以将数据库从弹性池中移出。选择数据库并点击从池中移除,就可以从弹性池中移除一个数据库。例如,下面的截图试图从弹性池中删除数据库[azuredemo2]。

Remove from Pool

它将数据库移至 "要从池中移除的数据库 "部分。

Database to be removed from Pool

点击保存,它开始部署,将数据库从弹性池中移出。 Initialize deployment

在部署结束时,你不会看到被移除的数据库在弹性池中的一部分。

View data space used

注意:如果我们将数据库移入或移出弹性池,用户可能会在操作结束后注意到一个小的(几秒钟)停机时间。

SQL弹性池中的数据库的业务连续性

弹性池中的Azure SQL数据库支持业务连续性选项,如时间点恢复、地理恢复和Active-geo复制。

客户案例研究

如果你不知道数据库的工作负载模式,并且需要经济有效地最大限度地利用你的Azure资源,就可以使用SQL弹性池。

总结

在这篇文章中,我们探索了Azure SQL数据库的SQL弹性池。后来,我们将数据库部署到弹性池中。你可以在弹性池中添加或删除Azure SQL Server中的现有数据库,并将数据库可用性的中断降到最低。它可以使用DTU或vCore购买模式来满足计算需求。