Terraform配置Azure SQL数据库保留策略未按预期生效排查
Azure SQL数据库Terraform备份保留策略配置问题
问题概述
Azure SQL数据库当前使用默认基础备份保留策略,尝试通过Terraform将其修改为自定义值,但未按预期生效。相关Terraform配置代码如下:
resource "azurerm_mssql_database" "primary" { count = (var.is_primary == "true" ? 1 : 0) name = var.sql_database_name server_id = azurerm_mssql_server.app.id sku_name = "AAAAA" create_mode = "Default" zone_redundant = var.sql_zone_redundancy tags = var.resource_group.tags threat_detection_policy { state = "Enabled" } short_term_retention_policy { retention_days = 35 backup_interval_in_hours = 12 } long_term_retention_policy { weekly_retention = "P1W" week_of_year = 1 } }
补充信息:Terraform执行计划日志显示,数据库将按以下规则进行变更:
~ long_term_retention_policy { ~ week_of_year = 0 -> 1 ~ weekly_retention = "PT0S" -> "P1W" # (2 unchanged attributes hidden) } ~ short_term_retention_policy { ~ retention_days = 7 -> 35 # (1 unchanged attribute hidden) }
问题分析与解决建议
从计划日志来看,Terraform已经正确识别到需要修改的保留策略参数,说明你的配置本身没有遗漏项,未生效的原因可从以下几个方向排查:
- 未执行部署操作:你可能仅运行了
terraform plan查看变更计划,却未执行terraform apply将变更实际部署到Azure环境中。只有执行apply后,Azure才会根据配置更新数据库策略。 - SKU兼容性限制:配置中的SKU名称为
AAAAA(疑似占位符),需确认该SKU是否支持你设置的保留策略参数。例如,部分基础层SKU不支持自定义短期保留天数或长期备份保留策略。 - Azure后台同步延迟:即使执行了
terraform apply,Azure后台可能需要数分钟时间完成策略同步,建议等待一段时间后再通过Azure Portal或CLI检查策略状态。 - 权限不足:执行Terraform的账号需要拥有
Microsoft.Sql/servers/databases/backupLongTermRetentionPolicies/write和Microsoft.Sql/servers/databases/backupShortTermRetentionPolicies/write权限,否则Azure会拒绝策略变更请求。
如果已执行terraform apply但策略仍未更新,可尝试:
- 查看
terraform apply的输出日志,确认是否有报错信息。 - 直接通过Azure Portal或
az sql db str show/az sql db ltr-policy show命令手动检查数据库的保留策略,对比是否与Terraform配置一致。 - 若Azure侧显示策略已更新但未生效,可尝试重启数据库,或联系Azure技术支持排查后台同步问题。
内容的提问来源于stack exchange,提问作者Coder
相关产品推荐
相关产品推荐

