问:线上的业务最怕什么?
答:误删除数据。
继续问:比误删除数据还可怕的是什么呢?
答:删除后无法找回!
COS对象存储有11个9的数据保障级别,但是不保障主动删除的数据,如果真是手欠清空了存储桶。那么真的是无法挽回了。
所以数据备份的事情,一定要防患于未然,提前做好高可用架构。COS产品官网上有详细的高可用架构说明文档https://cloud.tencent.com/document/product/436/37709
以上的理论内容,咱们就不详细说了。这里介绍一下,当真的手残点击了当前桶和备份桶的删除动作后,我们继续多版本的高可用架构如何可以快速的恢复我们想要的数据。
这里介绍一下快速恢复的方案。总结成一句话:遍历所有目标对象,找到第一个非删除版本的数据对象进行拷贝。
场景
这个方法的作用是,while每次400条遍历所有的目标对象。
1.当有DeleteMarker标记时则跳过操作。
2.当islastest为true时,说明这是一个最新版本的数据对象。则进行复制操作。
3.当既不是deletemarker标签,也不是islastest最新版时。我们会找到第一个数据对象,作为筛选后的最新版实体数据,进行复制。
4.复制操作完成后,对象名称加入objectlist,避免再次被覆盖,也就是说,每一个对象,最多只会操作一次复制。
通过这个逻辑,我们只要找到第一个有实体数据的对象,做复制操作,就可以实现所有最新版的复制功能,实现批量的数据恢复。
以下是已复制的object列表。
测试一下,我们做了一份桶的数据清单,如下
备份桶文件列表
这里模拟各种删除场景,之后执行批量恢复脚本,执行结果如下
脚本执行结果
完成后在目标桶查看
目标桶恢复的对象列表
验证成功。
java脚本文件:https://wainsun-1253985742.cos.ap-beijing.myqcloud.com/%E8%84%9A%E6%9C%AC%E6%96%87%E4%BB%B6/DisasterRecovery.rar
python脚本链接:https://github.com/shezhangjun/TencentCOS/tree/master/Python_SDK/COS_Disaster_Recovery
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。