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

如何通过Azure CLI获取SQL Server及数据库的存储使用指标

获取Azure SQL数据库存储指标的CLI方法

az sql db list-usages返回的是数据库内部资源的使用计数(如CPU、IO操作数),并非Azure门户展示的存储类指标,所以无法直接拿到使用率、已用/剩余空间等数据。要获取这些指标,需结合az sql db show和简单的数值计算,以下是具体实现方式:

单一数据库场景

1. 获取基础存储数据

执行命令提取数据库的已用存储和最大存储(字节单位):

db_info=$(az sql db show \
  --name $database \
  --resource-group $resourceGroup \
  --server $server \
  --query "{used: storageProfile.usedStorageBytes, max: storageProfile.maxSizeBytes}" \
  -o json)

2. 计算衍生指标

通过jq和bc工具将字节转换为GB,并计算剩余空间、使用率:

# 转换为GB(保留2位小数)
used_gb=$(echo $db_info | jq '.used / (1024*1024*1024) | round(2)')
max_gb=$(echo $db_info | jq '.max / (1024*1024*1024) | round(2)')

# 计算剩余空间和使用率
remaining_gb=$(echo "$max_gb - $used_gb" | bc -l | xargs printf "%.2f")
usage_percent=$(echo "($used_gb / $max_gb) * 100" | bc -l | xargs printf "%.2f")

3. 输出结果

执行以下命令查看最终指标:

echo "已用空间: $used_gb GB"
echo "最大存储: $max_gb GB"
echo "剩余空间: $remaining_gb GB"
echo "使用率: $usage_percent %"

弹性池中的数据库

如果数据库属于弹性池,需同时查询弹性池的存储情况(因为数据库共享池的存储资源):

1. 获取弹性池存储数据

pool_info=$(az sql elastic-pool show \
  --name $poolName \
  --resource-group $resourceGroup \
  --server $server \
  --query "{used: storageProfile.usedStorageBytes, max: storageProfile.maxSizeBytes}" \
  -o json)

2. 计算池级存储指标

pool_used_gb=$(echo $pool_info | jq '.used / (1024*1024*1024) | round(2)')
pool_max_gb=$(echo $pool_info | jq '.max / (1024*1024*1024) | round(2)')
pool_remaining_gb=$(echo "$pool_max_gb - $pool_used_gb" | bc -l | xargs printf "%.2f")

3. 输出池和数据库的存储信息

echo "弹性池总存储: $pool_max_gb GB"
echo "弹性池已用存储: $pool_used_gb GB"
echo "弹性池剩余存储: $pool_remaining_gb GB"
echo "当前数据库已用空间: $used_gb GB"

注:需提前安装jq和bc工具(Linux/macOS可通过包管理器安装,Windows可使用WSL或Chocolatey)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:25:23