如何用Azure Resource Graph Explorer获取SQL Server备份计划与保留策略
获取Azure SQL数据库短期和长期备份保留策略的KQL查询
短期备份保留策略查询
直接查询数据库级的短期备份策略资源,就能拿到保留天数和备份间隔:
resources | where type == 'microsoft.sql/servers/databases/shorttermretentionpolicies' | extend sqlServerName = split(id, '/')[8] | extend databaseName = split(id, '/')[10] | project 订阅ID = subscriptionId, 资源组 = resourceGroup, SQL服务器名称 = sqlServerName, 数据库名称 = databaseName, 保留天数 = properties.retentionDays, 备份间隔(小时) = properties.backupIntervalHours
长期备份保留策略查询
长期策略包含周/月/年度的保留规则,对应的资源类型不同:
resources | where type == 'microsoft.sql/servers/databases/longtermretentionpolicies' | extend sqlServerName = split(id, '/')[8] | extend databaseName = split(id, '/')[10] | project 订阅ID = subscriptionId, 资源组 = resourceGroup, SQL服务器名称 = sqlServerName, 数据库名称 = databaseName, 每周保留时长 = properties.weeklyRetention, 每月保留时长 = properties.monthlyRetention, 每年保留时长 = properties.yearlyRetention, 年度备份周数 = properties.weekOfYear
关联SQL Server基础信息(可选)
如果需要把备份策略和SQL服务器的版本、位置等信息关联起来,可以用join操作:
resources | where type == 'microsoft.sql/servers/databases/shorttermretentionpolicies' | extend sqlServerId = strcat(split(id, '/')[0..8] | join('/', '')) | join kind=leftouter ( resources | where type == 'microsoft.sql/servers' | project sqlServerId = id, 服务器位置 = location, 服务器版本 = properties.version ) on sqlServerId | extend sqlServerName = split(id, '/')[8] | extend databaseName = split(id, '/')[10] | project 订阅ID = subscriptionId, 资源组 = resourceGroup, SQL服务器名称 = sqlServerName, 服务器位置, 服务器版本, 数据库名称, 保留天数 = properties.retentionDays, 备份间隔(小时) = properties.backupIntervalHours
说明:备份策略是SQL数据库的子资源,不是SQL服务器本身的属性,所以之前只查microsoft.sql/servers类型找不到相关数据,需要直接查询对应的短期/长期策略资源类型。
内容的提问来源于stack exchange,提问作者arun_mitt
相关产品推荐
相关产品推荐

