线上故障处理——发布顺序错误引起的数据库异常

小说:佛家告诉你什么才是放下?作者:海文顺杜更新时间:2019-03-23字数:15551

线上故障处理——发布顺序错误引起的数据库异常


今天系统版本发布,多个因素凑到一起引发线上故障。这个排障过程做的不是很好,存在很多改进的地方,作为排障的反面教材,分享给大家。

先说下今日版本内容:User系统周版本含service应用和数据库脚本两部分,其中数据库有两个脚本:001-清理不合规则的设备登陆记录和设备记录;002 - 第三方账户绑定表新增表字段。

故障追溯

  • 16:41 运维人员开始发布版本,开始执行脚本;
  • 16:42 运维人员开始发布service;此时脚本001脚本还未执行完成;
  • 16:50 产品经理找开发确认系统是否存在问题,导致管理端无法查询用户信息;开发开始介入查证;
  • 16:59 开发人员接到同事电话反馈,用户登录功能也存在问题;
  • 17:01 运维人员发现并反馈脚本001还未执行完成,执行时间过长;
  • 17:03 开发人员怀疑001脚本清理数据时锁库,要求DBA kill掉001脚本执行进程;
  • 17:07 DBA kill掉001脚本执行进程,但是服务未恢复;
  • 17:08 开发人员怀疑service应用未能重新获取到数据库连接池,故要求运维人员重启service服务;
  • 17:10 运维完成service重启,服务未恢复;
  • 17:11 开发人员查看应用日志,发现大量报错“ORA-00904: "XXXXX": 标识符无效”,检视版本内容中,002脚本存在新增字段XXXX的脚本;
  • 17:12 开发人员整理思路推断:001脚本未执行完成,进程kill后,部署平台不会继续002脚本,但由于运维先行发布了service,所以导致上述ORA-00904报错;
  • 17:12 要求运维人员手动执行002脚本;
  • 17:13 运维人员手动执行002脚本;
  • 17:14 开发人员验证服务并监控日志,确认服务已经恢复。排障结束。

过程剖析

整个故障处理中,我们发现“故障发现”过程持续了近8分钟(16:42~16:50),“故障定位”花费了22分钟(16:50~17:12),“故障处理”花费了1分钟(17:12~17:13)。其中"故障发现","故障定位"两个阶段存在严重不足,下面一一剖析。

“故障发现”过程

最大的问题在于:服务缺乏告警,未能及时发现系统故障。从16:42 service开始发布,故障产生,到16:50 开发人员介入故障处理,期间没有任何告警出来,最后是由于用户反馈系统存在异常,才知晓系统故障。理论上,如果存在告警系统,1分钟之内便可以发现故障,可以节约7分钟,7分钟对于生产系统来讲是很宝贵的。

线上service服务有访问量、时延、错误率的监控,但是没有基于这些监控数据的告警,后续需要补上。

“故障定位”过程

最初开发人员接到产品经理的反馈只有用户管理端部分查询功能不可用,便没有提升优先级,让团队其他人一同介入处理;后接听到其他团队反馈用户登录存在问题时,才介入,并提升优先级;这反映出团队没有一个良好运作的故障排查协作机制,不能迅速地完成故障识别及故障升级,开发人员意识不足,需要加强培训。

在故障定位过程中,开发实践地比较好的技巧在于:

  1. 在得知运维同事给到的“数据库脚本执行时间过长”的信息后,第一时间要求DBA杀掉该执行脚本链接,此行为可能无法解决根本问题,但是对于此类异常现象的解除通常对故障恢复和系统运行有帮助,因此,在故障原因不太明朗的情况下,这个行为是有利于故障恢复的,值得肯定。
  2. 快速检视版本变更内容对故障带来的影响。

做的不好的地方:

  1. 开发人员在要求DBA杀掉脚本执行链接的同时,没有去查看应用日志,以最终确认问题点。

总结

根据此次排障过程中,后续再如下几个方面需要改进:

  1. 在团队内宣导线上排障的思路,制定故障排查的协作机制,提升开发人员的排障意识;
  2. 完善服务告警,在现有监控数据上,增加服务错误率的告警,以便迅速发现故障,为排障争取更多时间;
  3. 部署平台需要加入“版本依赖”强控制,确保依赖版本在被依赖版本之后发布;
  4. 服务优化,登录服务和非关键业务表解耦,提高登录等关键服务的稳定性。

参考资料

如何快速处理线上故障

当前文章:http://zxqss.com/news_35014.html

发布时间:2019-03-23 06:35:03

给粲然《你是世上最好的妈妈》 不伦恋之父亲爱上了女儿的同学 既然选择了远方,那只能风雨兼程 AlphaGo:人机围棋大战最终谁会赢? 宰掉那只无辜的狼 鸡汤比鸡肉更有营养吗? 暴力电影与“被欺负” 陈忠实:60岁后回白鹿原,泪眼模糊 如何应该孩子的负面情绪 罗李华:巨蟹座2016年运势

我们为什么要工作? 总得有点真东西 关于MERS,你该知道的: 骗子为什么可以得逞 未婚夫要和别人结婚了 历史,让我们看见 吻痕多长爱多长 宝宝皮肤过敏不能吃什么 又一倒掉的“大师”! 心理对夫妻情感与孩子养育的影响 吻痕多长爱多长 总得有点真东西 卵子冷冻能否带来“静蕾效应”? 人民币贬值对我们意味着什么? 起名专家罗李华谈起名之禁忌 欧美同学会是干什么的? 错过天籁。。。 三成网民“不快乐” 网瘾难逃离 性爱好处多

编辑:纯建

我要说两句: (0人参与)

发布