此次來談談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給後臺,請求他們幫忙把數據恢復回來,這纔是正道