【工作杂记】一次修改表字段名操作导致的报表缺失了2个小时的数据

  因为MSTR中设计实体的时候,字段名不一样的话两个表无法关联(很死板),故修改了表TBL_FACT_SKILL_RG96868_HOUR中的被叫字段名called_no->calleeno,大概9点20左右的时候做的修改列名操作。
  由于疏忽,忘记修改了前一日新增的存储过程中的PRC_SKILL_RG_96868_HOUR的insert操作列名还未修改,导致存储过程编译失败,由于该过程又被更高一级每半小时执行一次的过程sp_icd_h_job调用了,进一步导致此过程也编译失败,但是当时并没有做验证,9点30时,调度job开始执行存储过程,由于存储过程编译失败,导致此过程中的过程都没有执行成功,因此8点到9点数据都没有生成。大概10点左右的时候,出现了一次现场环境的大面积断网,直到11点10左右的时候,报表使用人员开始上报错误信息:MSTR报表WEB页面无法打开。于是就紧急重启了MSTR服务器(这是另外一个问题,在端午节的早上也出现了这种问题,目前还不知道是什么原因)。

  MSTR服务器重启好之后,MSTR的web可以正常登录,又过了一会儿,使用人员上报信息说今天的报表只能查到0点到7点的数据,8点到10点的数据没有显示。于是我从报表去取数的事实表开始顺藤摸瓜,发现是昨天新加的存储过程导致的,而且今天早上修改的表字段名也正是与这个存储过程相关的,我立即修改了存储过程中相应的字段名,重新编译存储过程,编译成功,然后立即开始执行数据更新,从8点开始,一致执行到11点的,执行过程中刚好遇到了半小时自动执行调度job,形成了冲突,导致11点-12点的自动job虽然执行成功,但是生成数据的缺失,我当时猜想是因为我在手动执行的存储过程与调度job自动执行的存储过程冲突了。
  查看存储过程执行日志,等待调度job执行完毕后,再次手动执行过程刷新11点到12点的数据,这次成功生成数据。

原文地址:https://www.cnblogs.com/uzipi/p/5587512.html