【问题标题】:How to programmatically change tier of Azure SQL Database如何以编程方式更改 Azure SQL 数据库的层
【发布时间】:2015-03-24 17:32:19
【问题描述】:

我们在 Azure 上运行了一个大型 SQL 数据库,该数据库通常仅在正常办公时间使用,但有时,加班/周末工作人员需要对数据库进行高效访问。

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

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

Microsoft 网站上有许多文章/视频提到“向上/向下”(与“向外/向内”相反,即创建/删除额外的分片),但提供的示例代码似乎可以处理只使用分片,而不是垂直“放大/缩小”。

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

【问题讨论】:

  • 既然你想从 .Net 做这个,使用 Sql Azure SDK 应该更合适。 nuget.org/packages/Microsoft.WindowsAzure.Management.Sql
  • 同意,虽然我认为如果唯一的原因是扩展层级,那么添加整个 SDK 就有点过头了。
  • 感谢您的建议。我还发现实际上我可以通过在适当的数据库上发出 ALTER DATABASE 命令来实现同样的目的。
  • 你能把你使用的命令告诉我们吗?

标签: powershell azure azure-sql-database


【解决方案1】:

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

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

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

【讨论】:

  • 是否可以使用此 REST API 请求当前层?我想在我的网络应用中显示当前层
【解决方案2】:

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

用于 PUT 的参数在此 msdn 页面上进行了说明:Update Database

【讨论】:

    【解决方案3】:

    除了直接使用 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多