上线对开发来说,是一个历险的过程,即使上线前准备的多么充分,也可能在线上发现问题。

最近上了一个项目,在测试环境和预发布环境平稳运行超过3个月,上线是预警系统发生大量短信报错,紧急查找bug,

发现问题原因:

    生产数据库的一个表中的字段a的长度不一致,测试环境和预发布环境该字段的长度是20,上线时使用的脚本是预发布环境的脚本,回归脚本时发现生产上该字段的长度是30.

影响:

   所幸a字段只在监控系统使用,且测试环境和预发布环境中的预警是关闭的,故运行很久没有发现问题。

猜测可能的原因:

  该字段最早只有长度是20,后面因业务需要扩充到30个字段,但没有和我这边沟通而是直接联系dba修改导致。具体原因也不便追溯。

反思:

  本次上线发生事故,主要责任是我,没有对上线的脚本和生产脚本进行严格的检查(多次检查生产脚本是否和上线脚本是否一致,但忽略了长度的检查)。

  对自己要求不够严格,以为在测试和预发布环境运行那么久,所以粗心大意了。

对以后的要求:

 1. 数据库脚本一定要严格审查,使用Beyond Compare等对比工具而不是眼睛,毕竟人容易犯错。

   2. 对待上线,再谨慎也不为过。

 

以此文谨记!

posted on 2015-11-28 18:55  一天不进步,就是退步  阅读(760)  评论(0编辑  收藏  举报