数据库陆续出现 4200.ERR_GROUP_NOT_AVALILABLE、4201.ERR_GROUP_NO_ATOM_AVAILABLE、4202.ERR_SQL_QUERY_TIMEOUT等数据库异常报警。
由于数据库承载了销售核心的用户组织权限功能,故障期间,期间销售工作台无法打开,大量小二反馈咨询。
定位到有应用基础缓存包升级发布,时间点相吻合,尝试通过打开缓存开关,系统恢复。
二、现场结论
对此次升级缓存包应用发布内容分析,发现升级的某个二方包中,删除了本地缓存逻辑,直接请求DB,而本次升级没有对请求的SQL进行优化,如下代码所示,该SQL从Oracle迁移到MySQL,由于数据库性能的差异,最终造成慢查询,平均一次执行2S多,大量慢SQL最终打挂数据库。
SELECT CRM_USER_ID AS LOGIN_ID, CRM_ROLE_ID AS ROLE_NAME, CRM_ORG_ID AS ORG_ID
, CONCAT(CRM_USER_ID, '#', CRM_ROLE_