如何在Azure订阅中查找SQL Server的.bacpac备份文件
查找Azure订阅中SQL Server的.bacpac备份文件
方法1:通过Azure门户直接查看配置与历史记录
- 登录Azure门户,定位到目标SQL Server资源
- 进入对应数据库的**「导入/导出」**页面,查看已完成的导出任务记录,每条记录会明确显示.bacpac文件存储的存储账户、容器及具体路径
- 若曾配置自动导出(旧版备份功能),可在数据库的**「备份」→「自动导出」**选项中查看绑定的存储账户信息
方法2:使用Azure CLI批量扫描存储账户
- 先获取订阅内所有存储账户的名称与所属资源组:
az storage account list --query "[].{name:name, resourceGroup:resourceGroup}" --output table - 遍历每个存储账户,扫描所有容器中的.bacpac文件:
# 替换为目标存储账户名和资源组 STORAGE_ACCOUNT="your-storage-account" RESOURCE_GROUP="your-resource-group" # 获取存储账户密钥 ACCOUNT_KEY=$(az storage account keys list --account-name $STORAGE_ACCOUNT --resource-group $RESOURCE_GROUP --query "[0].value" --output tsv) # 扫描所有容器内的bacpac文件 az storage blob list --account-name $STORAGE_ACCOUNT --account-key $ACCOUNT_KEY --container-name "*" --query "[?ends_with(name, '.bacpac')].{name:name, container:container}" --output table
方法3:通过Azure Resource Graph快速查询
在Azure门户的Resource Graph Explorer中执行以下Kusto查询,可一键筛选订阅内所有存储账户中的.bacpac文件:
Resources | where type == 'Microsoft.Storage/storageAccounts' | extend storageAccountName = name | join kind=inner ( Resources | where type == 'Microsoft.Storage/storageAccounts/blobServices/containers' | extend containerName = name, storageAccountId = split(id, '/blobServices/default/containers/')[0] ) on $left.id == $right.storageAccountId | project storageAccountName, containerName, storageAccountId | mv-expand blobFiles = invoke_azstoragebloblist(storageAccountName, containerName) | where blobFiles.name endswith ".bacpac" | project storageAccountName, containerName, blobName = blobFiles.name, blobUrl = blobFiles.url
注意:若使用Azure SQL的长期备份保留策略,生成的是原生备份格式(非bacpac),这类备份无法直接下载为bacpac文件,需先恢复数据库再导出为bacpac格式。
内容的提问来源于stack exchange,提问作者RaRdEvA
相关产品推荐
相关产品推荐

