ITPub博客

首页 > 数据库 > 数据库开发技术 > 临时工说: 看上去简单,只要实际干活,就错误百出 一则 (发现问题 分析问题 解决问题)

临时工说: 看上去简单,只要实际干活,就错误百出 一则 (发现问题 分析问题 解决问题)

原创 数据库开发技术 作者:liuaustin 时间:2024-01-26 06:00:00 0 删除 编辑

这开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内,可以解决你的问题。加群请微信联系 liuaustin3 ,(共1950人左右 1 + 2 + 3 + 4 +5) 4群(410+ 关闭自由申请,新入群的将默认分配达到5群),另欢迎 OpenGauss 的技术人员加入。

最近到了年根地下,一切都在求稳,可惜天不遂人愿,问题还是很多而且有些都比较......

问题  数据归档后,数据列错位的问题


这个问题比较有意思,基于公司的数据库的量数据的量都比较多的情况,定时的对数据进行归档时必要的工作,基于能自动化的不手动,能严谨的工作一定要更严谨,所以我们采用了 pt-archiver 的方式来进行这个工作,一开始是没有问题的,将一个表的数据,归档到归档表中,这样做了几天,是没有问题的,但某天就被反馈,在归档的表中列中的值错位了,应该是第3列的,跑到了第5列,这就奇怪了,如果是错误,那么都应该是错误的,这里的错误是随机的,并且在体现上,并量并不是很大。


所以我们陷入了一个问题的分析过程

1   数据库归档表的错误,不是大范围的,而是小范围的列错位
2   基于我们在归档的时候,产生了归档的记录文件,我们还是有据可查
     到底这个数据是否就是错位的
3   软件的版本的是否有问题,有bug 导致这些问题

随即我们进行了分析

1  在归档中记录文件中的历史记录中,的确在哪个文件中的位置也是错误的
2  软件并未有明显标记有BUG FIX 在这方面有一些记录
3  的确出现问题的数据是极个别的

我们确认了错误存在的真实性,并且确认了这些错误的确是在数据流转时产生的,那么下面就需要来看看到底是怎么产生的,在继续分析下去,发现出现问题的数据,在字段文字的末尾都存在换行符,而没有换行符的就不会出现问题。

最终定位问题,凡是在字段值中有换行符的,都会产生列偏移的问题。

问题定位后,剩下的就是怎么处理的问题

1   应用程序中来修改由于自己的问题,导致的字段中带有换行符的问题
2   数据库这边忽略这个数据类型,因为这个数据有换行符的只存在与某种业务类型,我们忽略他即可,后续等业务自行处理这些数据
3   数据归档后,进行数据的修复

经过商议,最终的结果是2 ,我们归档过滤这些类型的数据,而等待他们来修复数据,等修复数据后,在进行数据的归档。

通过这个问题,我们可以总结如下信息

1   我们常用的命令以及常见的工作方法,并不是一直不会出问题,出问题要进行有效的分析,针对命令本身要有严谨的操作的意识,比如pt-archiver 可以不记录操作的数据,但我们并未这样做,这给我们后面解决问题,有基础数据提供的支持

2   遇到问题,能分析出具体的问题,我们应该往一些有特性的部分,如数据本身去想,而不应该去往命令方面去想,这也是后续我需要总结和反思的

3   举一反三,以后类似的问题,或类似的事情,我们的解决思路,分析的思路都能更清晰的进行,更快速的进行问题的分析和处理。




原文作者:AustinDatabases;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-11-13

  • 博文量
    1980
  • 访问量
    518075