首页 云数据库 OceanBase 数据传输 数据迁移 配置迁移对象的匹配规则

配置迁移对象的匹配规则

本文为您介绍迁移对象匹配规则的背景信息、使用限制、配置方式及数据传输支持的通配符规则。

背景信息

在数据传输中,用户创建数据迁移项目时,必须指定具体的数据迁移对象。但数据传输支持增量 DDL 后,如果在迁移过程中源端创建了新表,则会由于该表未在指定的数据迁移对象中,导致无法同步该表的数据。

通配符使用一种很短的文本模式,简洁地代表一组路径。您可以将通配符看作原始的正则表达式,使用简单且方便。您在创建数据迁移项目时,可以使用基于通配规则的方式配置数据迁移对象,详情请参见本文《通配符规则说明》模块的内容。

目前数据传输支持所有类型的数据迁移项目配置迁移对象规则和排除对象规则,并适用于数据迁移项目执行的所有阶段。创建的数据迁移项目仅支持在启动前更新迁移对象规则和排除对象规则的配置。

创建数据迁移项目时,通配迁移对象规则和排除对象规则支持以下功能:

  • 支持以通配规则的方式指定迁移对象。

  • 支持编辑、校验匹配规则,以及预览匹配对象。

  • 每次更新预览,支持展示同上次通配规则匹配结果之间对象的增减信息。

  • 通配规则下,支持配置库表名映射。

    您可以在 迁移对象规则 中输入希望迁移表的通配规则和映射信息,支持包含源端库名、映射库名、源端表名的通配规则和映射表名。

    例如,test.shard_[0-9][0-9]=test_ob.shard。该规则表示将源端 test 库中 shard_00~shard_99 表映射至目标端 test_ob 库中的 shard 表。

使用限制

  • 表的迁移对象规则不允许为空。

  • 如果存在 Schema 多到一映射,不支持反向增量同步。

  • 如果存在多表汇聚,不支持反向增量同步。

  • 如果存在 DML 过滤,不支持全量校验。

  • 迁移对象规则和排除对象规则支持指定具体表,但不支持 DDL 同步功能。

  • 在执行修改表名称的 DDL 时,不允许将排除对象规则中的表重命名为排除对象规则之外的名称。

  • 如果使用 gh-ost 将 MySQL 数据库的增量 DDL 同步至 OceanBase 数据库 MySQL 租户,请务必配置 排除对象规则{database_name}.*_ghc

配置匹配规则

  1. 新建迁移项目。

    1. 登录 OceanBase 管理控制台

    2. 在左侧导航栏,单击 数据传输 > 数据迁移

    3. 数据迁移 页面,单击右上角的 新建迁移项目

  2. 选择源和目标 页面,配置各项参数。详情请参见相应类型的创建数据迁移项目文档。

    参数

    描述

    迁移项目名称

    建议使用中文、数字和字母的组合。名称中不能包含空格,长度不得超过 64 个字符。

    源端

    选择已创建的源端数据源。

    目标端

    选择已创建的目标端数据源。

    传输实例

    从下拉列表中选择已购买的传输实例。如果您未购买,请单击右侧的 购买 进行操作。详情请参见 购买传输实例

    场景类型

    仅创建 MySQL 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目时,会显示该参数。

  3. 单击 下一步,在 选择迁移类型 页面,配置各项参数。

    如果您创建的是 MySQL 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目,且选择场景类型为 仅支持唯一键表迁移,还需要单击弹出提示框中的 我知道了

    1. 根据业务需求,勾选当前迁移项目的 迁移类型

    2. 单击 下一步,选择迁移对象。

      您可以通过 指定对象匹配规则 两个入口选择迁移对象,本文仅为您介绍如何配置匹配规则。

      1. 勾选 匹配规则

        如果您选择了 同步 DDL,则仅支持通过 匹配规则 方式选择迁移对象。

      2. 选择迁移范围 区域,输入 迁移对象规则排除对象规则(可选)。

        支持的匹配规则详情请参见本文《通配符规则说明》模块的内容。

      3. 单击 校验

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

    3. 校验成功后,单击 下一步

      如果您创建的是 MySQL 数据库至 OceanBase 数据库 MySQL 租户的数据迁移项目,且选择场景类型为 支持全部表迁移,还需要单击弹出提示框中的 下一步

    4. 迁移选项 页面,配置各项参数。详情请参见所选迁移类型对应的创建数据迁移项目文档。

    5. 单击 预检查,系统对数据迁移项目进行预检查。

    6. 单击 启动项目

通配符规则说明

匹配规则支持正则表达式,"*" 代替正则表达式中的 ".*"。数据传输支持的通配符规则包括 "*"、"?"、"[]" 和 "[!]",每条规则使用单行且每条规则前后不允许存在空格。

配置迁移对象规则和排除对象规则后,当源端创建一张新表时,只要其表名匹配迁移对象规则且不匹配排除对象规则,即可被数据传输实时同步。

设置迁移对象规则和排除对象规则时,请注意区分大小写。如果匹配规则和对象名称的大小写不一致,则无法匹配出数据。

字符 "*"

字符 "*" 可以匹配任意长度的字符,也可以匹配空字符。例如,设置 迁移对象规则<Schema>.*,则右侧的 匹配结果 会显示该 Schema 下的所有表和视图。

*

您也可以在 排除对象规则 中,设置无需迁移的对象,单击 校验。校验通过后,单击 预览对象,即可在 匹配结果 中查看。

排除

字符 "?"

字符 "?" 可以匹配单个字符。如果匹配多个字符,则需要多个 "?" 连用。例如,设置 迁移对象规则<Schema>.t?,则右侧的 匹配结果 会显示该 Schema 下符合该格式的表和视图。

重要

字符 "?" 不能匹配空字符,即字符 "?" 占据的位置必须有字符存在。

?

您也可以在 排除对象规则 中,设置无需迁移的对象,单击 校验。校验通过后,单击 预览对象,即可在 匹配结果 中查看。

排除对象

字符 "[]"

字符 "[]" 可以匹配方括号中的任意一个字符,[start-end] 表示一个连续的范围。例如,设置 迁移对象规则<Schema>.[]*,则右侧的 匹配结果 会显示该 Schema 下符合该格式的表和视图。

[]

您也可以在 排除对象规则 中,设置无需迁移的对象,单击 校验。校验通过后,单击 预览对象,即可在 匹配结果 中查看。

排除[]

字符 "[!]"

字符 "[!]" 表示匹配不在方括号中的字符(不包括空字符),[!start-end] 表示一个连续的范围。例如,设置 迁移对象规则<Schema>.[!]*,则右侧的 匹配结果 会显示该 Schema 下符合该格式的表和视图。

[!]

您也可以在 排除对象规则 中,设置无需迁移的对象,单击 校验。校验通过后,单击 预览对象,即可在 匹配结果 中查看。

排除[!]

阿里云首页 云数据库 OceanBase 相关技术圈