---
title: "如何处理数据不一致问题？ | OceanBase 文档中心"
description: 如何处理数据不一致问题？ 由于数据的迁移任务和删除任务是分开的，在迁移任务运行完成，到删除任务开启之前，应用有可能会由于各种各样的原因对数据造成再次修改，导致删除的时候出现数据不一致的情况。按历史库平台的设计逻辑，有三种数据不一致的场景会导致删除任务失败，历史库平台把这三种不一致的场景定义为：CHECK_COLUMN…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 2.1 企业版

# 如何处理数据不一致问题？

更新时间：2023-06-25 11:15:00

由于数据的迁移任务和删除任务是分开的，在迁移任务运行完成，到删除任务开启之前，应用有可能会由于各种各样的原因对数据造成再次修改，导致删除的时候出现数据不一致的情况。按历史库平台的设计逻辑，有三种数据不一致的场景会导致删除任务失败，历史库平台把这三种不一致的场景定义为：CHECK_COLUMN_COUNT_NOT_MATCH，CHECK_RECORD_COUNT_NOT_MATCH，CHECK_COLUMN_NOT_MATCH。

- **CHECK_COLUMN_COUNT_NOT_MATCH：** 表示源端和目标端数据表的列数不一致，通常是由于在线库端数据表增加了字段，没有同步到历史库端。这种情况需要在历史库端增加对应字段，再重启任务即可。

- **CHECK_RECORD_COUNT_NOT_MATCH：** 表示源端的某个主键范围内获取到了200行数据，但这个主键范围内的目标端数据少于200行，说明迁移任务完成后，目标端符合条件的数据又增加了。这种情况需要点击 **项目-具体报错项目的详情-具体报错的逻辑表-更多操作-修改** ，将逻辑表配置中的 enable_imprecise_save_point 改为 **true** ，这样源端的这一批次数据就会继续被保留在源端，下一次配置迁移任务的时候把这些数据包含进来重新迁移即可。

- **CHECK_COLUMN_NOT_MATCH：** 表示在删除时发现源端某个字段的值和目标端的数据不一致，说明由于某些原因应用在迁移之后对数据进行了修改，这种情况下我们可以选择跳过这些记录，让它们继续保留在源端，等待下次迁移。修改方法是点击 **项目-具体报错项目的详情-具体报错的逻辑表-更多操作-修改** ，将逻辑表配置中的 dirty_row_action 修改为 **跳过(SKIP)** ，allowed_dirty_columns 填写数据不一致的列，多列可用逗号隔开，max_allowed_dirty_row_count 填写-1表示不限制，填大于零的正整数表示最多允许多少行不一致。 当然，如果业务本身允许这种不一致，需要直接删除，也可以将dirty_row_action 修改为 **忽略错误(CHEAT_AS_NORMAL)** 。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
