如何以编程方式更改 Azure SQL 数据库层

How to programmatically change tier of Azure SQL Database

我们在 Azure 上有一个大型 SQL 数据库 运行ning,通常只在正常办公时间使用,尽管 overtime/weekend 员工有时会需要高性能访问到数据库。

目前,我们 运行 在办公时间使用 S3 层的数据库,并在所有其他时间将其降低到 S0。

我知道有许多示例 PowerShell 脚本可以与自动化任务一起使用,以根据预定义的时间表自动修改数据库层。但是,我们希望从我们自己的 .Net 应用程序中控制它。主要好处是,这将使我们能够控制管理人员在非工作时间根据需要切换数据库层,而无需技术人员参与。

Microsoft 站点上有许多 articles/videos 提到了 "scaling up/down"(与 "scaling out/in" 相对,即 creating/removing 附加分片),但示例代码provided 似乎专门处理分片,而不是垂直 "scaling up/down".

这可能吗?谁能指出任何相关资源的方向?

可以,是的。您必须使用 REST API 来调用我们的端点并更新数据库。

更新所需的 PUT 的描述和参数在这里解释 -> Update Database Details

您可以从那里以编程方式更改等级。

是的,您可以使用 REST API 更改数据库层并调用 Azure 端点来更新层。

用于 PUT 的参数在这个 msdn 页面上有解释:Update Database

除了直接使用 REST API 之外,现在还可以使用多种方法来完成此操作。

https://docs.microsoft.com/en-us/azure/azure-sql/database/single-database-scale

查看 Azure CLI 示例

az sql db update -g mygroup -s myserver -n mydb --edition Standard --capacity 10 --max-size 250GB

参见 PowerShell 示例:

Set-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -DatabaseName "Database01" -ServerName "Server01" -Edition "Standard" -RequestedServiceObjectiveName "S0"