美文网首页
记一次使用log回滚线上金额的过程

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

作者: 嫻愔 | 来源:发表于2020-04-11 15:26 被阅读0次

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

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

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

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

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

相关文章

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

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

  • Innodb中的undo log

    Innodb实现事务的原子性时,使用的是undo log,当事务失败时,就使用undo log回滚事务的修改。 使...

  • 小记:Git撤销中间某次Merge

    记一次失败的代码回滚 常规代码回滚中间某次Merge如下: 撤销中间某次提交时,强烈建议使用revert命令,而不...

  • MySQL 日志

    极客时间MySQL专栏总结 使用InnoDB引擎过程中,比较耳熟能详的三种日志: undo log:用于回滚; r...

  • mysql七种日志

    MySQL 中有七种日志文件,分别是: redo log;重做日志 undo log;回滚日志 bin log;二...

  • MySql值得学习得日志类型

    前言: MySql 中有六种日志文件,分别是: 重做日志(redo log) 回滚日志(undo log) 二...

  • 2020-11-27 分布式事务

    分布式事务 AT模式 -> seata实现的AT模式->对业务0入侵,使用undo_log回滚(可能有脏写) TC...

  • MySQL的日志

    MySQL中一种有7种日志 redo log 重做日志 undo log 回滚日志 bin log 二进制日志 ...

  • MySQL的redo log、undo log、binlog

    一、MySQL日志文件类型 重做日志(redo log) 回滚日志(undo log) 二进制日志(binlog)...

  • Git回滚远程版本

    Git回滚远程版本本文介绍如何回滚已提交至远程的操作总的步骤如下:1、 git log //查看提交历史,找...

网友评论

      本文标题:记一次使用log回滚线上金额的过程

      本文链接:https://www.haomeiwen.com/subject/ysnymhtx.html