代码bug导致误操作批量更新/删除

有时候在代码层面会写出 update或者delete语句忘记带where条件导致批量误操作的情况,这种误操作虽然不多,但是对于新手或者测试不严格的项目还是有可能发生。


预防:

方法1、代码层面设立规范,每个DB的更新或者删除操作都必须带上where条件,如果要批量更新加上where 1=1;

方法2、mysql开启 sql_safe_updates,这个对于数据库更新、删除操作层面会有诸多限制,牺牲方便性,提升了安全性。


已经发生处理:

方法1、锁表lock tables test read,停止业务继续进行,防止数据二次污染,用binglog2sql恢复数据(mysql的binlog_format需要为row格式才能用binglog2sql,默认是mixed)。

方法2、用备份+日志恢复

方法3、如果是云数据库则寻求云服务商的帮助即可