---
title: 增量同步无主键表 where 条件过多报错 Invalid argument-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 增量同步无主键表 where 条件过多报错 Invalid argument相关的常见问题和使用技巧，帮助您快速解决 增量同步无主键表 where 条件过多报错 Invalid argument的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

划线反馈

# 增量同步无主键表 where 条件过多报错 Invalid argument

更新时间：2023-11-16 04:11

适用版本： V4.2.x、V4.1.x、V4.0.x、V3.4.x、V3.1.x、V3.2.x、V3.3.x、V2.1.x、V2.2.x、V1.3.x、V1.4.x、V2.0.x 内容类型：Troubleshoot  

本文为您介绍增量同步无主键表 where 条件过多报错 Invalid argument 的原因和解决方法。

## 问题描述

无主键表的 `where` 条件过多的情况下，增量同步步骤报错 `Invalid argument,table:{tableName},db:{dbName}`。

## 适用场景

- MySQL 数据库无主键至 OceanBase 数据库 MySQL 的正向增量同步。
 - 写入端为 OceanBase 数据库的无主键表反向增量同步。

## 适用版本

适用于 OceanBase 迁移服务（OceanBase Migration Service，OMS）全部版本。

## 可能原因

无主键同步的过程中，执行 `UPDATE` 或 `DELETE` 会匹配全列。如果 OceanBase 数据库的 `where` 条件中包含的列过多（超过 64），则会报错。

您可以根据报错信息中的数据库和表信息，查询写入端的表结构。如果是无主键表，且字段的个数超过 64，请根据《解决方法》模块的操作进行处理。

## 解决方法

该问题有以下三种解决方法，您可以根据实际情况进行选择。

- 修改无主键表的结构，操作如下：

     1. 实际业务需求允许的情况下，在写入端的无主键表中添加主键或唯一键。
     2. 完成主键或唯一键的添加后，单击 OMS 控制台左侧导航栏的 **数据迁移**。
     3. 在 **迁移项目列表** 页面，单击目标数据迁移项目后的 **恢复** 即可进行重试。

       您也可以单击目标数据迁移项目的名称，进入详情页面，单击右上角的 **恢复**。
 - 移除报错的表，操作如下：

     1. 进入数据迁移项目的详情页面。

            1. 登录 OMS 控制台。
            2. 在左侧导航栏，单击 **数据迁移**。
            3. 在 **迁移项目列表** 页面，单机目标数据迁移项目的名称，进入详情页面。
     2. 在目标项目的详情页面，单击右上角的 **查看对象**。

       ![invalid1-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/invalid1-zh.png)
     3. 在 **查看对象** 对话框，单击 **修改对象** > **减少对象**。

       ![invalid2-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/invalid2-zh.png)
     4. 在 **减少对象** 对话框的右侧 **目标端对象** 区域，鼠标悬停至报错的表，单击 **移除**。

       ![invalid3-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/invalid3-zh.png)
     5. 在 **减少对象** 对话框，单击 **移除**。
     6. 在弹出框中确认需要移除的对象无误后，单击 **确定**。
     7. 返回目标项目的详情页面，单击右上角的 **恢复**。
 - 将报错的表添加至黑名单，操作如下：

     1. 进入目标项目的详情页面。
     2. 在目标项目的详情页面，单击右上角的 **查看组件监控**。
     3. 在左侧导航栏，单击 **运维监控** **>** **组件**。
     4. 单击 **Incr-Sync 增量同步组件** 后的 **更新**。
     5. 在 **更新配置** 对话框，鼠标悬停至 `root` > `condition` 下的参数 `blackCondition`，单击参数配置后显示的编辑图标。

       ![update-black3-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/update-black3-zh.png)
     6. 在文本框中输入修改的参数值后，单击确认图标。

       ![update-black4-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oms-enterprise/update-black4-zh.png)
     7. 在 **更新配置** 对话框，单击右下角的 **确定**。

Previous

[如何修改写入模式 replace 为 insert](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000321582)

Next

[如何在已创建的增量同步任务中关闭或开启同步 DDL](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000004389247) ![有帮助](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) 咨询热线
