如何回溯查看Azure SQL Serverless实例的暂停时间?
查看Azure SQL Serverless实例历史暂停状态的方法
Azure Monitor日志查询
Azure SQL Serverless的暂停/恢复状态变更会被记录到Azure Monitor日志中,你可以通过Kusto语句筛选历史记录:- 登录Azure门户,进入目标SQL Server资源的「监视」>「日志」页面
- 运行以下Kusto查询(可按需调整时间范围):
AzureMetrics | where ResourceProvider == "MICROSOFT.SQL" | where MetricName == "DatabaseState" | where TimeGenerated between (ago(30d) and now()) // 替换为ago(7d)查看近一周 | where Value == 0 // 0代表暂停状态,1代表在线 | project 暂停时间=TimeGenerated, 实例名称=ResourceName, 资源组=ResourceGroup - 可添加
| where ResourceName == "你的数据库名称"来筛选特定实例
Azure活动日志查询
自动暂停操作会生成活动日志条目,步骤如下:- 进入SQL Server资源的「活动日志」页面
- 在筛选器中选择「操作名称」为「暂停数据库」,设置目标时间范围
- 日志条目会显示暂停的具体时间、触发原因(自动闲置触发)及资源详情
批量查询脚本(PowerShell/CLI)
针对多台实例,可通过脚本批量获取历史暂停记录:- PowerShell示例:
$startTime = (Get-Date).AddDays(-30) $endTime = Get-Date Get-AzActivityLog -StartTime $startTime -EndTime $endTime | Where-Object {$_.OperationName.Value -eq "Microsoft.Sql/servers/databases/pause/action"} | Select-Object EventTimestamp, ResourceGroupName, ResourceName - Azure CLI示例:
az monitor activity-log list --start-time $(date -d "30 days ago" +%Y-%m-%dT%H:%M:%SZ) --end-time $(date +%Y-%m-%dT%H:%M:%SZ) --query "[?operationName.value=='Microsoft.Sql/servers/databases/pause/action'].{暂停时间:eventTimestamp, 实例名称:resourceName, 资源组:resourceGroupName}"
- PowerShell示例:
注意事项
- 需确保账号拥有「监控读取者」或对应资源的日志访问权限
- Azure Monitor日志默认保留90天,如需更长周期的历史数据,需手动调整日志保留策略
内容的提问来源于stack exchange,提问作者Arturas Zuta
相关产品推荐
相关产品推荐

