Azure Storage操作备份:恢复后能否不保留新版本?
关于Azure存储容器恢复后避免生成新版本的解决方案
首先明确:启用Blob版本控制后,任何对Blob的写入/覆盖操作(包括从恢复点恢复)都会自动生成新版本,这是版本控制的默认行为——它会记录Blob的每一次状态变更。目前没有直接的配置可以让恢复操作跳过版本生成,但可以通过以下两种方法实现你的需求:
方法一:临时禁用版本控制再恢复
- 先关闭目标容器的版本控制功能(在Azure门户的容器设置里找到「版本控制」选项,切换为禁用)
- 执行从备份恢复点恢复容器的操作,此时因为版本控制已关闭,恢复操作不会生成新版本
- 恢复完成后,重新启用容器的版本控制功能
- 注意:禁用版本控制期间,如果有其他针对Blob的修改操作,不会保留历史版本,所以要确保这段时间没有额外的写入操作
方法二:恢复后清理多余版本
- 正常执行恢复操作(此时会生成新版本)
- 手动或通过脚本清理恢复操作产生的新版本:
- 使用Azure CLI列出容器内的Blob版本:
az storage blob version list --container-name <你的容器名> --account-name <你的存储账户名> --output table - 根据版本的时间戳或ID,删除恢复操作生成的版本:
az storage blob version delete --container-name <你的容器名> --name <Blob名称> --version-id <要删除的版本ID> --account-name <你的存储账户名> - 如果你需要批量清理,可以编写脚本遍历所有Blob的版本,筛选出恢复时间点附近生成的版本进行删除
- 使用Azure CLI列出容器内的Blob版本:
另外,针对你举的例子:修改Blob A后生成版本,恢复基础Blob后,修改后的Blob版本仍会保留在版本记录中——这是版本控制的预期行为,它会保留所有历史状态,即使你恢复到之前的版本,修改后的版本依然存在。如果你不需要这个修改后的版本,也可以用上述方法二删除它。
内容的提问来源于stack exchange,提问作者samraj
相关产品推荐
相关产品推荐

