最近听说某大哥想不开,决定乘风破浪,删库尿遁。最后导致XX公司巨大损失,自己也被送进了水库。最近舆论所向,程序员又背锅了。
咱程序员是纯粹的,咱来研究怎么防止此类问题。
一、灾备
一般的做法是建立三个数据中心:A B C
A为生产数据中心;
B为数据据同步中心(实时的将数据从A中心同步过来), A与B至少应该在不同的机房;
C为异地备分同心:周期性的将数据从B同步到过来,比如说每隔15分钟,半小时等;
当A数据中心发生故障时,自动检测到A不可用,从而自动切换到B数据中心;当然这种方式无法解决删库问题,C则为删库提供了缓冲,当然也只是缓冲,不能解决数据丢失问题, 例如在C进行了某一次数据同步后的第五分钟,A数据中心被删了,后面发现该情况后进行数据恢复,也只能恢复5分钟之前的数据,那0-5分钟之间的数据是找不回来的。
理想的做法是C能每隔某个极短的周期,全亮的生成一个B的快照,这样就能保证在极端情况下(如删库)数据不丢或丢失极少。当然这样也会存在一些其它,如网络问题,严重的带宽问题,存储问题。
二、权限控制
生产库进行严格的权限控制,这在中国这个大环境有点难,尽量吧。