【TDengine 版本】
- 版本:3.2.1.0
- 操作系统:centos7
- 部署方式:非容器部署
- 节点数:1
- 副本数:0
【描述业务影响】
- 数据丢失
【场景描述】
-
由于业务原因,对超级表的字段进行了调整,调整期间两种结构的数据同时写入新库和旧库,观察无问题后,停止了旧库数据的写入,将旧库的数据写入新库,在此期间发生了新库已有数据丢失的现象。
-
具体来讲,在数据迁移期间,4.20当天数据库本来有 7.63 亿条数据,到 4.24日,4.20当天的数据量缩小到了 6.71 亿条(其他日期的数据有同样的问题,并且日期越早丢失的数据越多)(新库旧库是物理分隔的两个TDengine实例)
【复现步骤】
- 在问题定位过程中,排除其他干扰时,暂停了数据迁移程序,并且观察一段时间,数据丢失停止了!
- 重复启动和停止数据迁移程序,启动时数据会丢失,停止时数据不会丢失。
- 观察
/taosdlog.0,并无错误日志,注意并且唯一明显的日志是.stt .head removed的日志,于是猜测可能和数据文件的合并重组有关系。 - 抱着尝试的心态,重启了 TDengine实例,数据不再丢失了。
【资源配置】
- 数据迁移过程中,写入速度大概 3~4 亿/小时
- 服务器 4c 8g
- vgroup 32 buffer 64m
【问题】
- 是否是由于数据乱序插入触发的相关bug。
- 是否是已知的版本特定的bug。