记一次mysql数据完整性问题排查经历

背景

使用python脚本监控特定进程的资源占用情况,存入数据库;每次进程关闭后写入日志到特定目录(Logs/日期/小时)。现在需要记录在比较数据中存储的数据的一致性问题。

总数统计对比

1、查询日志总数情况
可以递归遍历查询日期下目录的数据,脚本如下:
ls -lR |grep "_20210903.log.gz$"|wc -l
image.png
2、去重查询数据库中总数情况
可以利用distinct进行mysql的去重查询操作。

select distinct(process_id)  from server_process_perf_by_second where process_name in ("name1","name2") and date ="20210903"

记一次mysql数据完整性问题排查经历_第1张图片

结果可以查看到日志监控到503个进程PID。而日志监控到的数据是179个数据,这两个数据不一致,所以mysql记录的数据中存在漏数据的情况。需要进一步进行分析哪些进程PID数据有问题。

数据详情对比

导出数据存入Excel表格中
利用公式
输入如下公式: =COUNTIF($A$2:$A$500,B2)后进行数据对比,对比的结果如下图
记一次mysql数据完整性问题排查经历_第2张图片

综上可以针对差异的进程PID号进行问题的排查。

你可能感兴趣的