pump突然出现这个,然后drianer传输数据变成0了。
1 个赞
MVCC 是版本记录咯
这么老的版本,该升级了
现在就是迁移呀使用binlog。
已经提交的数据。相应的unlog就被删除了。
学习了 .
GC收集清理了历史数据了吗
tidb早期的版本问题会比较多,还在是升级比较方便,建议升级
可能是 RAID 卡的缓存(Cache)或电池(BBU)出现问题,导致无法安全地进行数据缓存
会不会跟oracle一样的报错,就算快照过旧,GC那个safe点设置的长一点试试看看
历史版本被gc回收了吗
可能是多个事务同时操作同一数据,导致 MVCC 版本链被修改,后续事务无法找到预期记录, 也有可能是事务已经回滚或者超时
- 事务层面:检查 start ts=460510921013854235 和 460510924906692657 对应的业务事务,确认是否存在短事务频繁提交或过早 GC
- 存储层面:调整 MVCC GC 策略,避免年轻事务版本被过早回收;监控 LSM-Tree 层级合并进度
- 监控层面:增加 MVCC record not found 告警阈值
- 大量 Find no MVCC record 日志表明:
- 存在短生命周期事务,其版本记录还未持久化或已被 GC 回收
- 可能是读-写冲突或事务提交过快导致版本不可见
- 若持续大量出现,可能影响查询性能或导致事务重试
如果 GC life time 设置过短,或事务执行时间过长,会导致年轻事务的版本还未被读取就被 GC 回收,从而出现 “no MVCC record”
回滚的话应该不用读取历史版本了吧
如果执行时间很长,没提交的事务的历史版本应该也不会被回收吧?
回滚本身不读版本,但回滚会打乱 DM 的 binlog 解析节奏
所以这个原因有可能导致他提示这个错误的吗?
一致性读的配置,应该是gc回收了快照数据了吧
