记一次使用log回滚线上金额的过程

事情是这样的,因为临时上代码,没过测试,在一个查询条件没有传ID。导致所有的核销操作都走了0金额处理流程。就是只改了订单状态,更新用户的余额。

第二天发现线上问题,说是有些订单又做了撤销核销的操作,这样又多加了金额。

处理方式
1、立马通知业务部门停止此操作。但是金额乱了。
2、目前用户的操作痕迹可以在日志中找到。
于是根据关键词,找到所有点过问题代码相关的地方。找到对应的单子。
再也是根据关键词,找到撤销核销的订单
匹配上机构。
根据日志,把机构的余额改回去。订单状态恢复到操作之前。。。

总结
emmm……
不小心代码哪个地方写错这个问题,是个人都会粗心。。。。。
关于自测,我平时自测就测我改的那个流程,其实应该要像测试一样改动的代码各种涉及的地方都要考虑清楚。。。。
另外任何改动都要经过测试上线。。通过一个hotfix直接上线,而且是金额真的太恐怖了。。。。
另外另外,日志真的要多打印,关键时刻可以用来人工回滚数据。抢救灾难现场。这次最有用的就是日志

mysql的rollback本质其实也是根据日志在回退。

你可能感兴趣的:(记一次使用log回滚线上金额的过程)