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