创建 SQL 弹性池

已完成

健身公司等服务型软件 (SaaS) 提供商通常需要为每个客户(本示例中是每个地点)预配 SQL 数据库。 作为服务提供商,你需要应对不可预测的工作负载,特别是在存储客户数据时。 你可能无法查看每个客户的增长速度或需求激增的时间点。

传统上是如何预配数据库资源的?

传统上,SaaS 提供商需要过量预配资源来确保具有应对峰值需求的容量(这会增加成本),或者欠量预配,而这在高需求情况下可能影响性能。

SQL 弹性池是什么?

SQL 弹性池是用于缩放和管理一组 Azure SQL 数据库的性能和成本的资源分配服务。 通过弹性池,你可以为组购买资源。 可以设置为池提供的资源数量,将数据库添加到池,并为池中的数据库设置最小和最大资源限制。

池资源需求根据组的整体需求设置。 通过池,池中的数据库可以共享已分配资源。 SQL 弹性池用于管理预算和多个 SQL 数据库的性能。

何时使用弹性池?

如果你拥有几个平均使用率低但使用峰值(偶发)高的 SQL 数据库,SQL 弹性池是理想选择。 在此场景中,可以在池中分配充足容量来管理组的峰值,但总资源可以少于所有数据库的所有峰值需求的总和。 由于峰值偶发,因此单个数据库的峰值不太可能影响池中其他数据库的容量。

在健身公司场景中,各个地点可能在一年中的不同时间点进行促销,或者在区域性假日期间或一天的不同时间出现需求高峰。

向池添加多少个数据库?

一般原则是,如果各个数据库满足容量高峰需求所需的组合资源比弹性池所需容量多 1.5 倍,则该池的性价比较高。

就最低限度来讲,建议向单个池添加至少两个 S3 数据库或 15 个 S0 数据库,以节省潜在成本。

可以向单个池添加最多 500 个数据库,具体取决于性能层。

创建弹性池

SQL 弹性池必须托管在 SQL 服务器中。 你将在创建弹性池时指定现有服务器或创建新服务器。

类似于许多 Azure 资源,可以通过 Microsoft Azure 门户,或者运行 az sql elastic-pools create 命令通过 Azure CLI,或者运行 New-AzSqlElasticPool 命令通过 PowerShell 来创建弹性池。

在下一个单元中,你将完成创建 SQL 弹性池的练习。

向弹性池添加数据库

可以使用 Microsoft Azure 门户、Azure CLI 或 PowerShell 添加数据库。

使用 Microsoft Azure 门户时,可以将新池添加到现有 SQL Server,也可以创建新的 SQL 弹性池资源并指定服务器。

使用 CLI 时,调用 az sql db create 并使用 --elastic-pool-name 参数指定池的名称。 此命令可以将现有数据库移动到池,或新建数据库(如果数据库不存在)。

使用 PowerShell 时,可以使用 New-AzSqlDatabase 将新数据库分配到池,然后使用 Set-AzSqlDatabase 移动现有数据库。

可以将 Azure SQL 服务器中的现有 Azure SQL 数据库添加到池,或者新建数据库。 可以混合同一池中的服务层。