数据备份对不少公司来说是一个很是很是重要的事情,我这里谈谈咱们公司的一次数据备份方案诞生的经历,怎么样高效的便宜的备份数据。数据库
2018年8月的一天,忽然公司董事长找我谈话,说看到一个创业公司发的贴,说由于腾讯云的事故,他们几年的数据都没有了。董事长问我,云不是宣传安全可靠的吗,怎么会丢数据呢?我上网查看了该公司,一家名为前沿数控的创业公司投诉了腾讯云。安全
我以为夸大宣传在国内市场上太广泛了,国家要求运营商下降移动上网费用,结果运营商就推出了不限量套餐,而真实的状况是当你流量达到必定程度后,你会被大大限速,限速的结果是你连微信聊天都不行,套路呀。服务器
咱们公司使用的是阿里云,并且购买了阿里云的备份工具,我让公司运维去问问阿里云客服,是否是能够保证咱们数据的安全,而后获得了下面答复:微信
他们答复也符合个人预期,没有人会保证你数据的安全的,并且客服伺机给咱们提出了使用混合云备份方案,把数据备份到多个IDC,何时都不忘记作生意呀。运维
咱们公司在阿里云的花费已经一个月3万多了,若是购买混合云备份,又会增长不小的开销。通过一番研究后,我建议公司把数据本身备份到其它云,或者本身的本地服务器上面。咱们的数据主要有GIT代码和相关设计图片,生产数据库和图片服务器数据。GIT和数据库都有本身的备份工具,代码和设计图片通过处理后备份不算很大,数据库备份也能够接受,但图片服务器数据太大了,有100多个G。咱们使用的图片服务器是FastDFS,我让运维找找它有没有自带备份工具,通过几天的研究和查找,运维返回的结果是,没有。100多G的数据,天天异地备份,可能一天也备份不完,并且大大的消耗流量,会占用咱们客户的宽带流量,影响客户使用体验。因而,我建议咱们要本身开发一个增量备份功能,完成异地数据的备份和恢复。ide
首先,咱们要找到为啥这么多数据,这些数据都是须要备份的吗?经和运维后台开了讨论会后,发现若是用户删除图片,后台并无从FastDFS里面删除图片,只是从数据库里面删除了图片URL,这样致使FastDFS里面有不少无用的图片,并且为了适配不少不一样尺寸的手机,后台会为原图生成多个适配图片,因此真正有效的图片没有那么多。并且,不是全部的图片都是重要的,一些APP论坛的图片,不是很是重要,最关键的是用户信息图片,如车辆图片,驾驶证图片等等。工具
找到图片的组成结构后,个人设计大概就出来了,目标是实现图片的多级别增量备份,只备份有效数据,不备份系统生成的图片。阿里云
1. 经过URL对比,删除旧的孤儿无用图片,为了防止之后产生孤儿图片,咱们在数据库里面创建了一个删除URL列表,保留这些删除的连接,按期维护FastDFS的时候根据删除列表删除图片,释放FastDFS空间,不在线上当即删除图片。spa
2. 备份恢复工具也会根据删除LIST,在作增量更新的时候,删除备份中的相关图片,不然数据恢复时候会致使删除图片恢复回来。.net
3. 备份工具实现增量备份,备份完毕记录备份节点,方便下次备份找到开始时间点。
4. 备份工具实现增量更新功能,增量更新会把新增的图片和删除的图片更新到以前的备份数据里面。
5. 备份工具进行全量备份,由于首次备份是全量备份。备份工具实现差别级别备份,能够选择备份关键的图片,忽略次要的图片。
实现本身设计的备份工具之后,最大优点就是数据量大大减小了,天天只有100M如下,备份变得高效不少,并且消耗极少的带宽流量。
写这篇文章就是想说明一个道理,云的最大优点是可让你快速扩容机器数量和带宽,但云不能解决一切问题,不少上层的问题仍是须要本身来解决的。云服务商提供的标准化的统一解决方案虽然能够解决不少问题,但不必定是最有效的解决办法,不少时候是一种狗皮膏药的感受。
本文分享自微信公众号 - 可持续开发(isale3000)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。