关键字:SAM+ 数据库自动备份、失效
故障现象描述
RG-SAM+ 数据库自动备份功能失效:开启自动备份功能,但对应磁盘下未生成备份数据库文件

故障排查分析
- SAM+每日凌晨2点定时任务会队列执行数据库备份等任务,具体执行结果会记录在运维日志里。
- 查看现场运维日志,发现定时任务只执行到某一天,之后就未打印执行日志。判断是此时定时任务异常了未执行,则需要进一步分析产品定时任务执行情况。
- 查看系统日志中有提示系统定时器超时而终止。(正常是提示“系统定时器执行完毕!”)

- 查看底层对应时间的LOG日志:
- LOG日志分析方法:先用“系统定时器超时而终止”过滤,在用“billingScheduler_Worker”任务线程去过滤

- 发现提示“系统定时器超时而终止“之前的一个任务:用户用网使用详情(时长)定时器执行时间过长,且结束时间为10:22,执行时间超过3小时,进而整个定时任务截止。
- 备注定时任务机制说明:5、6两个任务是在凌晨2点开始执行,到9点08秒截止,已开始的任务会继续执行完毕。
- 针对运维日志里“数据库定时任务”。如果有一个任务执行超过3小时,只停这一个任务,不会打印截止日志。
- 截止日志只对于开始新任务时判断时间是否超过9点08秒,超过了就打印截止,就比如下图,用户用网使用详情这个任务就没有执行直接被截止了。

- 针对用户用网使用详情(时长)定时器执行时间过长的可能原因分析:
备注:可以拿回现场数据库后台测试执行时间。
- 已检查现场服务器CPU内存满足安装要求,磁盘IO稳定在300M/S以上,数据库分配的最大可用内存是物理内存的一半,所以排除。
- 该任务是基于用户上网明细表做统计,将ONLINE_DETAIL统计这个表插入到AGGR_RECORD这个表里,需要检查索引是否有丢失,可以参考如下,有少的话说明有存在丢失,可以联系400获取解决对策。(客户现场通过核查也排除这一点)

故障根因说明
软件问题:
RG-SAM+ 数据库自动备份功能失效的根因是“凌晨2点的数据库自动备份”定时器被截断未正常执行,截断的原因是“用户用网使用详情定时器”定时器执行时间过长导致整个系统定时器截止,执行时间过长的原因是该任务聚合逻辑存在缺陷,在大数据情况下执行非常慢,超过产品限制的3小时。
故障解决方案
更新补丁:将原来只有1个线程执行凌晨定时任务调整为3个线程并行处理,提升执行速率
该补丁已合并至4.22P6标准版本,若是4.22P3版本需要打上补丁合集20231025及以上(补丁下载)
如遇故障无法定位解决可转:售后闪电兔 处理