此次来谈谈blob中数据恢复的问题,数据恢复向来都是大事儿,动辄就是卷铺盖卷滚蛋的下场,因此删除数据以前必定要慎重再慎重
ide
可是无论如何防御,总归仍是会有数据被误删除的状况,若是在Azure中出现了这类问题又该如何解决呢?测试
好比,咱们不当心删除了Azure中的某些blob,那么如何才能恢复这些数据呢?
spa
在18年之前,其实这是个很棘手的问题,由于数据删除了的话,那就真的删除了,可是18年以后微软推出了一项功能叫作soft delete,顾名思义就是软删除,这项功能能够保证数据删除以后咱们还能够再把数据找回来,有点相似于回收站的概念吧
3d
要注意的是,这项配置默认是不开启的,须要手动开启
htm
下边来看具体如何操做
对象
首先,咱们先找到storage中有个叫data protection的,在这里就能够开启soft delete这项功能
blog
开启以后,咱们作两个测试
it
1.直接删除blob,而后进行恢复
io
2.删除blob以后,上传一样文件名的文件进行覆盖,再尝试恢复
class
首先来看第一个简单的
咱们上传文件以后,点击删除
删除以后若是想恢复的话,能够直接在container里选择show deleted blobs,就能够看到被删除的blob了
若是想恢复的话也很简单,右键选择undelete便可
再来看第二种场景,若是咱们删除了这个文件以后又上传了一个同名的文件进行覆盖,结果会怎么样呢?还能还原以前的文件吗
咱们来看一下刚才删除的说明.htm这个文件,能够看到删除这个文件以后,是看不到快照的
可是若是咱们上传一个同名的文件进行覆盖,会怎么样呢?
能够看到会多出一个叫delete snapshot的东西,那么若是咱们想恢复这个被覆盖的数据怎么办呢?只须要undelete这个snapshot就能够了
因此,其实不须要担忧在删除数据以后被覆盖的问题,Azure会用快照的方式保存这些被覆盖的文件
soft delete固然也不是尽善尽美的,有如下几点就须要注意
软删除不会对存档层中的 blob 提供覆盖保护。 若是存档层中的 blob 被任何层中的新 blob 覆盖,则被覆盖的 blob 将永久过时。
软删除仅适用于 blob(对象)存储
软删除不适用于managed磁盘
软删除适用于全部存储层,包括热、冷和存档。 可是,软删除对存档层中的 blob 不提供覆盖保护
若是删除整个账户或容器,将永久删除全部相关 blob
关闭软删除后,仍能访问和恢复未过时的软删除数据
另外,还有一点,若是没启用软删除,或者是状况不符合使用软删除的条件,那么若是数据被删除的话,是否是就彻底没有办法找回了?
其实也不尽然,后台其实仍是有几率能帮你把数据找回来的,前提是时间够短,运气够好
因此,若是数据真的被无心或者恶意删除了的话,首先别作任何操做,以后立刻提case给后台,请求他们帮忙把数据恢复回来,这才是正道