You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

恢复Azure SQL无服务器数据库后,如何用PowerShell设置ComputeModel为Serverless?

恢复Azure SQL Serverless数据库后恢复ComputeModel与标签的解决方案

问题背景

使用Get-AzSqlDeletedDatabaseBackup和Restore-AzSqlDatabase PowerShell cmdlet恢复已删除的Azure SQL Database(Serverless)后,恢复操作成功,但数据库的标签和ComputeModel未随数据库一同恢复。

已尝试的无效操作:

  • 执行Set-AzSqlDatabase仅指定ComputeModel和AutoPauseDelayInMinutes参数,未生效
  • 通过Set-AzResource修改Kind属性,修改未生效

解决办法

1. 恢复ComputeModel为Serverless

恢复后的数据库默认采用Provisioned计算模型,需通过Set-AzSqlDatabase补充完整的Serverless配置参数才能生效:

Set-AzSqlDatabase -ResourceGroupName $resourcegroupname `
    -ServerName $servername `
    -DatabaseName $databasename `
    -Edition "GeneralPurpose" `
    -ComputeModel "Serverless" `
    -AutoPauseDelayInMinutes 45 `
    -MinCapacity 0.5 `
    -MaxCapacity 4

注意:

  • Edition必须指定为GeneralPurpose,Serverless仅支持该版本
  • MinCapacity和MaxCapacity需匹配原数据库配置,或按需调整(范围:0.5~1024 vCore)

2. 恢复数据库标签

方式一:通过Set-AzSqlDatabase直接覆盖标签

# 定义原数据库的标签哈希表
$tags = @{
    "Environment" = "Production"
    "Project" = "MyApp"
}

Set-AzSqlDatabase -ResourceGroupName $resourcegroupname `
    -ServerName $servername `
    -DatabaseName $databasename `
    -Tag $tags

方式二:使用Update-AzTag增量更新标签

如果需要保留现有标签并添加新标签,可使用该命令:

# 获取数据库资源ID
$resourceId = "/subscriptions/<你的订阅ID>/resourceGroups/$resourcegroupname/providers/Microsoft.Sql/servers/$servername/databases/$databasename"

# 定义要添加的标签
$newTags = @{
    "Owner" = "dev-team"
}

Update-AzTag -ResourceId $resourceId -Tag $newTags -Operation Merge

说明:使用-Operation Replace会覆盖所有现有标签;Merge则保留原有标签并添加新标签。

无效操作原因说明

Kind属性是Azure SQL Database的只读系统属性,无法通过Set-AzResource直接修改。计算模型(ComputeModel)属于数据库的运行时配置,必须通过Set-AzSqlDatabase这类专用cmdlet进行调整。

内容的提问来源于stack exchange,提问作者andyz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:35:10