---
title: "配置和修改匹配规则 - OB Cloud 云数据库 master | OceanBase 文档中心"
description: 配置和修改匹配规则 本文为您介绍迁移对象匹配规则的背景信息、使用限制、配置和修改方式，以及库到库场景示例和常见问题。 背景信息 您在新建数据迁移任务时，需要指定具体的迁移对象。数据迁移提供指定对象、导入对象和匹配规则三种方式供您选择。其中匹配规则方式支持您通过编写通配规则指定或修改需要迁移的对象，并且支持配置源端及目…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*qbZXRo_94ZEAAAAAAAAAAAAADiGDAQ/original) OB Cloud 云数据库

# 配置和修改匹配规则

更新时间：2026-05-14 14:28:04

本文为您介绍迁移对象匹配规则的背景信息、使用限制、配置和修改方式，以及库到库场景示例和常见问题。

## 背景信息

您在新建数据迁移任务时，需要指定具体的迁移对象。数据迁移提供指定对象、导入对象和匹配规则三种方式供您选择。其中匹配规则方式支持您通过编写通配规则指定或修改需要迁移的对象，并且支持配置源端及目标端的对象映射逻辑，通过简单、高效的字符串匹配能力，可以有效地降低您在待迁移对象数量众多时的配置难度。同时，符合匹配规则的新增表可以通过增量 DDL 的方式自动同步至目标端。增量 DDL 的详情请参见 [同步 DDL 的支持范围和使用限制](https://www.oceanbase.com/docs/common-oceanbase-cloud-0000000002416055)。

### 库到库的通配规则说明

数据迁移支持的数据库到数据库的通配规则及其要求如下。

#### 说明

- 下方表格中的星号（*）表示通配规则。
 - 双向同步任务不支持库表汇聚场景。

| **类别** | **支持的通配规则** | **示例** | **描述** |
| --- | --- | --- | --- |
| 库表平迁 | *.* | kd_test*.person* | 将源端 kd_test 开头的所有库下 person 开头的所有表迁移至目标端，库名、表名保持不变。 |
| 库表平迁 | *.<源端表> | kd_test*.person | 将源端 kd_test 开头的所有库下 person 表迁移至目标端，库名、表名保持不变。 |
| 库表平迁 | <源端库>.* | kd_test.person* | 将源端名为 kd_test 的库下 person 开头的所有表迁移至目标端，库名、表名保持不变。 |
| 库表平迁 | <源端库>.<源端表> | kd_test.person | 将源端名为 kd_test 的库下名为 person 的表迁移至目标端，库名、表名保持不变。 |
| 库表重命名 | <源端库>.<源端表>=<目标端库>.<目标端表> | kd_test.person=kd_test_new.person_new | 将源端名为 kd_test 的库下名为 person 的表迁移至目标端，并且将库 kd_test 重命名为 kd_test_new，表 person 重命名为 person_new。 |
| 库表重命名 | <源端库>.*=<目标端库>.* | kd_test.person*=kd_test_new.person* | 将源端名为 kd_test 的库下 person 开头的所有表迁移至目标端，并且将库 kd_test 重命名为 kd_test_new，表名保持不变。 |
| 库表重命名 | *.<源端表>=*.<目标端表> | kd_test*.person=kd_test*.person_new | 将源端 kd_test 开头的所有库下名为 person 的表迁移至目标端，并且将表 person 重命名为 person_new，库名保持不变。 |
| 库表汇聚 | <源端库>.*=<目标端库>.<目标端表> | kd_test.person*=kd_test.person_all | 将源端名为 kd_test 的库下 person 开头的所有表汇聚至目标端库 kd_test 下的表 person_all 中。 |
| 库表汇聚 | *.<源端表>=<目标端库>.<目标端表> | kd_test*.person=kd_test_all.person | 将源端以 kd_test 开头的所有库下名为 person 的表汇聚至目标端库 kd_test_all 下的表 person 中。 |
| 库表汇聚 | *.*=<目标端库>.<目标端表> | kd_test*.person*=kd_test_all.person_all | 将源端以 kd_test 开头的所有库下以 person 开头的所有表汇聚至目标端库 kd_test_all 下的表 person_all 中。 |
| 库表汇聚 | *.*=<目标端库>.* | kd_test*.person*=kd_test_all.person* | 将源端以 kd_test 开头的所有库下以 person 开头的所有表汇聚至目标端库 kd_test_all 下，表名保持不变。 |
| 库表汇聚 | *.*=*.<目标端表> | kd_test*.person*=kd_test*.person_all | 将源端以 kd_test 开头的所有库下以 person 开头的所有表汇聚至目标端以 kd_test 开头的库下的表 person_all 中，库名保持不变。 |

通配规则要求如下：

- 目标端的库名和表名不允许同时为通配规则。例如，`kd_test*.person*=kd_test*.person*`。
 - 如果源端库和目标端库均为通配规则，则库级别的表达式必须完全一样，表示库平迁。
 - 如果源端表和目标端表均为通配规则，则表级别的表达式必须完全一样，表示表平迁。
 - 如果目标端库为通配规则，则源端库必须为通配规则。
 - 如果目标端表为通配规则，则源端表必须为通配规则。

### 库到消息队列的通配规则说明

数据迁移支持的数据库到消息队列的通配规则及其要求如下。

#### 说明

下方表格中的星号（*）表示通配规则。

| **支持的通配规则** | **示例** | **描述** |
| --- | --- | --- |
| *.*=<Topic 名> | *.*=topic | 将多库下的多表映射到一个 Topic |
| *.<源端表>=<Topic 名> | *.b=topic | 将多库下的表 b 映射到一个 Topic |
| <源端库>.*=<Topic 名> | a.*=topic | 将库 a 下的多张表映射到一个 Topic |
| <源端库>.<源端表>=<Topic 名> | a.b=topic | 将库 a 下的表 b 映射到一个 |

## 使用限制

- 数据迁移允许输入多条规则，但需要注意每条规则不能跨行且前后不允许有空格。
 - 迁移对象规则不允许为空，排除对象规则允许为空。
 - 数据迁移不支持在结构迁移、全量迁移期间进行 DDL 变更。
 - 通过匹配规则的方式选择迁移对象时，数据迁移不支持表名包含特殊字符（包括换行、空格，以及 .|"'`()=;/&*?[][!]）。
 - 数据迁移不支持通过多条匹配规则，将源端同一个库下的不同表映射至目标端的不同库下。例如，`a.a* = b.a* & a.b* = c.b*`。
 - 数据迁移暂不支持 `CREATE DATABASE` 的 DDL 语句。如果新建的库名在数据迁移的匹配规则内，您需要手动在目标端创建数据库才能继续新增库的数据同步。

## 注意事项

- 当您完成配置迁移对象规则和排除对象规则后，如果源端表名在迁移对象规则和排除对象规则的差集内，则相关对象可以被选择。

  #### 说明

  差集是指对于给定的两个集合，返回一个包含所有存在于第一个集合但不存在于第二个集合的元素的新集合。
 - 开启 DDL 同步功能后，当您使用 DDL 语句在源端创建一张新表或者修改一张表结构时，如果表名或表结构名在迁移对象规则和排除对象规则的差集内，则该 DDL 语句可以被数据迁移实时同步至目标端。
 - 库表汇聚场景下：

     - 建议您使用匹配规则的方式映射源端和目标端的关系。
     - 建议您自行在目标端创建表结构。如果使用数据迁移创建，请在结构迁移步骤跳过部分失败对象。
     - 如果您在库或表汇聚的场景下勾选了 **DDL 同步**，可能存在误删风险。例如，源端多个库或表汇聚至目标端的一个库或表中。此时，删除源端的一个库或表，可能导致目标端的汇聚库或表被删除。
     - 您在新建数据迁移任务时，请选择 **目标端表对象存在记录时处理策略** 为 **忽略**。
 - 如果表存在重命名映射，则优先重命名映射。例如，同时存在规则 `a.b[0-3]` 和 `a.b[3-5]=a.c`，则表 `a.b3` 重命名为 `a.c`。
 - 执行 `RENAME TABLE` 的 DDL 语句时，如果 RENAME 后的表对象不在原匹配规则或排除规则内，可能导致非预期同步问题，请谨慎操作。

## 配置库到库的匹配规则

1. 新建数据迁移任务，并配置至 **选择迁移对象** 步骤。

   详情请参见 [数据迁移](https://www.oceanbase.com/docs/common-oceanbase-cloud-0000000002418240) 模块相应类型的新建数据迁移任务文档。
 2. 在 **选择迁移对象** 区域，选中 **匹配规则**。

   ![migration147-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/migration147-zh.png)
 3. 在 **选择迁移范围** 区域，输入 **迁移对象规则** 和 **排除对象规则**（可选）。支持的匹配规则详情请参见 [通配符规则说明](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000001760341)。

   #### 说明

   如果您配置的规则中包含空格，可能导致迁移对象有误。
 4. 单击 **校验**。

   如果您需要查看匹配结果，请在校验成功后单击 **预览** 进行查看。您填写的通配迁移对象规则和排除对象规则，会同时应用于表和视图。**匹配结果** 包括最终对象、新增对象和减少对象。

   | 对象 | 描述 |
   | --- | --- |
   | 最终对象 | 配置的匹配规则最终匹配的迁移对象。 |
   | 新增对象 | 最终匹配结果和前一次配置的匹配结果相比，新增的迁移对象。 |
   | 减少对象 | 最终匹配结果和前一次配置的匹配结果相比，减少的迁移对象。 |

   通过匹配规则的方式选择需要迁移的对象后，您可以进行设置过滤条件的操作。

   ![migration148-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/migration148-zh.png)

      1. 在 **匹配结果** > **最终对象** 面板，鼠标悬停至目标表对象。
      2. 单击显示的 **设置** 图标。
      3. 在 **设置** 对话框中，输入标准的 SQL 语句中的 `WHERE` 子句，来配置行过滤。配置完成后，单击 **验证语法**。详情请参见 [SQL 条件过滤数据](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000000564065)。
      4. 语法验证通过后，单击 **确定**。您还可以在 **查看列** 区域，查看迁移对象的列信息。
 5. 根据提示完成后续的任务配置。

### 场景示例

#### 库表平迁

将源端 lgtest 开头的所有库下，以 c 开头的所有表迁移至目标端，库名、表名保持不变。匹配规则的配置如下。

![oms-domestic-83](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/oms-domestic-83.png)

#### 库表重命名

将源端名为 lgtest2 的库下，以 books 开头的所有表迁移至目标端，并且将库 lgtest2 重命名为 lgtest2_new，表名保持不变。匹配规则的配置如下。

![oms-domestic-84](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/oms-domestic-84.png)

#### 库表汇聚

将源端以 lgtest 开头的所有库下，以 c 开头的所有表汇聚至目标端库 lg_test1 下的表 courses 中。匹配规则的配置如下。

![oms-domestic-85](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/oms-domestic-85.png)

#### 配置排除对象规则

设置无需同步源端名为 lgtest2 的库下的以 b 开头，以及以 s 结尾的表。匹配规则的配置如下。

![oms-domestic-86](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/oms-domestic-86.png)

#### 配置排除对象规则

设置无需同步源端名为 mcm_test1 的库下的以 test 开头，以及以 9 结尾的表。匹配规则的配置如下。

![migration84-en](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/migration84-en.png)

## 配置库到消息队列的匹配规则

迁移 OceanBase 数据库的数据至 Kafka 时，您可以通过配置匹配规则的方式选择需要迁移的对象。

1. 将数据迁移任务配置至 **选择类型和对象** 步骤。

   详情请参见 [数据迁移](https://www.oceanbase.com/docs/common-oceanbase-cloud-0000000002418239) 模块相应类型的新建数据迁移任务文档。
 2. 在 **选择迁移对象** 区域，选中 **匹配规则**。
 3. 输入 **迁移对象规则** 和 **排除对象规则**（可选）。支持的匹配规则详情请参见 [通配符规则说明](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000001760341)。

   迁移 OceanBase 数据库的数据至 Kafka 时，支持多对一或一对一映射，请注意不支持空格。如果选择迁移类型时已勾选 **结构迁移**，您可以输入已有 Topic 的名称或新建 Topic。如果选择迁移类型时未勾选 **结构迁移**，则仅支持输入已有 Topic 的名称。
 4. 单击 **校验**。

   如果您需要查看匹配结果，请在校验成功后单击 **预览对象** 进行查看。**匹配结果** 包括最终对象、新增对象和减少对象。

   通过匹配规则的方式选择数据库需要迁移的对象后，您可以进行设置过滤条件和分片列等操作。

      1. 在 **匹配结果** > **最终对象** 面板，鼠标悬停至目标表对象。
      2. 单击显示的 **设置** 图标。
      3. 在 **设置** 对话框中，您可以进行以下操作。

             - 迁移 OceanBase 数据库的对象时，在 **行过滤条件** 区域的文本框中，输入标准的 SQL 语句中的 `WHERE` 子句，来配置行过滤。配置完成后，单击 **验证语法**。详情请参见 [SQL 条件过滤数据](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000000564065)。
             - 在 **分片列** 下拉列表中，选择目标分片列。您可以选择多个字段作为分片列，该参数为可选。

              选择分片列时，如果没有特殊情况，默认选择主键即可。如果存在主键负载不均衡的情况，请选择唯一性标识且负载相对均衡的字段作为分片列，避免潜在的性能问题。分片列的主要作用如下：

                     - 负载均衡：在目标端可以进行并发写入的情况下，通过分片列区分发送消息需要使用的特定线程。
                     - 有序性：由于存在并发写入可能导致的无序问题，OMS 确保在分片列的值相同的情况下，用户接收到的消息是有序的。此处的有序是指变更顺序（DML 对于一列的执行顺序）。
             - 在 **选择列** 区域，选择需要迁移的列。详情请参见 [列过滤](https://www.oceanbase.com/400.functions/)。
      4. 单击 **确定**。

## 修改迁移对象的匹配规则

### 修改匹配规则说明

下表为您介绍支持修改匹配规则的场景。

| **数据迁移任务步骤** | **数据迁移任务状态** | **步骤状态** |
| / | 未启动 | / |
| 全量迁移 | 运行中 | 运行中 |
| 失败 | 失败 |
| 暂停 | 暂停 |
| 增量同步 | 运行中 | 运行中 |
| 运行中 | 监控中 |
| 失败 | 失败 |
| 暂停 | 暂停 |

### 修改匹配规则操作

1. 进入 **查看对象** 对话框。

      1. 登录 [OB Cloud 云数据库控制台](https://console-cn.oceanbase.com/)。
      2. 在左侧导航栏，单击 **数据服务** > **数据迁移**。
      3. 在 **数据迁移** 页面，单击 **数据迁移** 页签。
      4. 在 **数据迁移** 页签，单击目标任务的名称，进入详情页面。
      5. 单击页面右上角的 **查看对象**，查看 **迁移对象** 和 **修改记录**。
 2. 在 **查看对象** 对话框，单击右下角的 **修改规则**。
 3. 在 **修改规则** 对话框，修改迁移对象的匹配规则来新增或减少对象。
 4. 单击 **校验**。如果您需要查看匹配结果，请在校验成功后单击 **预览对象** 进行查看。

   您可以将鼠标悬停在新增对象，单击显示的 **设置** 图标，对新增对象进行设置过滤条件的操作。

   ![migration149-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/migration149-zh.png)
 5. 单击 **下一步：确认修改结果**。

      - 新规则中存在新增迁移对象时，请重新配置迁移类型并进行预检查。

       迁移 OceanBase 数据库的数据至 Kafka 时，支持多对一或一对一映射，请注意不支持空格。如果选择迁移类型时已勾选 **结构迁移**，您可以输入已有 Topic 的名称或新建 Topic。如果选择迁移类型时未勾选 **结构迁移**，则仅支持输入已有 Topic 的名称。
      - 新规则中存在减少迁移对象时，页面会展示具体的减少对象。
 6. 预检查成功或确认减少对象无误后，单击 **提交**。

   ![migration150-zh](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/oms/oceanbase-cloud/migration150-zh.png)

## 常见问题

- 权限不足

  请注意源端用户的权限设置问题。如果您授予用户的权限不足，部分对象未被数据迁移从前端展示出来，会导致您不能正确配置匹配规则。因此您需要将未授予权限的对象加入 **排除对象规则**，以避免数据迁移因无法找到目标端对象而造成数据迁移任务中断。
 - 不支持过滤 DML

  在未开启 DDL 同步的情况下，数据迁移允许使用匹配规则的方式选择对象。在增量同步的过程中，如果新建表满足匹配规则，相关的 DDL 语句会被忽略，但数据迁移会继续同步 DML 语句，这样会造成无法写入目标端对象而造成数据迁移任务中断，因此您需要在目标端新建表或者将表加入到组件的黑名单。

 上一篇 下一篇 ![有帮助](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) 咨询热线
