代码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、如果是云数据库则寻求云服务商的帮助即可