2024-01-19下午15:21分,批量误更新了20w数据 , 本来需要更新1.6w,引发了生产数据查看错误…,16:51分发现,直到17:16分解决。
在生产环境中,难免遇到需要手工写脚本刷数据问题,特别是对于自己不熟悉的业务,不是自己所开发的模块等一系列相关的刷数据脚本,特别特别特别需要注意数据的批量更新行数 , 稍微不注意就更新了全部的数据,更新完还需要再检查一遍,是否只更新了自己需要更新的数据。
本人在生产环境批量跑数的情况很多,一年下来多如牛毛,这一次就遇到不是自己系统的数据,上游不刷数据,要在下游搞刷数据,然后就出错了… ,然后又没有邮件和流程相关东西, 只能扛这玩意了…
后续发现问题,在15分钟内处理了全部数据,包含下游影响到的数据,解决方案是用数据库的快照回退
0.十分重要,不是自己系统需要刷的数据不要像个活菩萨去帮别人去刷数据,一定要拒绝 , 拒绝不了就让别人功能发邮件,数据执行流程。留下证据(懂的都懂,不懂就评论区留言)
1.在更新前先根据更新条件查询一遍,确保当前更新条件的数据全部符合需要更新范畴
2.不要自动提交,oracle需要手动commit , mysql会自动commit , 所以mysql需要手动开启事务,然后手动提交事务
3.在执行更新操作一定需要看影响行数 , 然后再commit
4.更新完需要再次查看更新的数据
不说了,难受,本人心情如下