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

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

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

a969fe33b72ce1b4d7837a19c0712ec8.png

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

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

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

1   数据库归档表的错误,不是大范围的,而是小范围的列错位

2   基于我们在归档的时候,产生了归档的记录文件,我们还是有据可查

     到底这个数据是否就是错位的

3   软件的版本的是否有问题,有bug 导致这些问题

随即我们进行了分析

1  在归档中记录文件中的历史记录中,的确在哪个文件中的位置也是错误的

2  软件并未有明显标记有BUG FIX 在这方面有一些记录

3  的确出现问题的数据是极个别的

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

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

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

1   应用程序中来修改由于自己的问题,导致的字段中带有换行符的问题

2   数据库这边忽略这个数据类型,因为这个数据有换行符的只存在与某种业务类型,我们忽略他即可,后续等业务自行处理这些数据

3   数据归档后,进行数据的修复

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

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

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

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

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

d3fecf583b2586317c9e75330b87c4b5.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值