首批通过分布式安全可靠测评,为关键业务系统打造
创建 DBP 逻辑表至 OceanBase 数据库 MySQL 租户物理表的数据同步项目
更新时间:2023-06-25 10:20:37
OceanBase 迁移服务(OceanBase Migration Service,OMS)支持 DBP 逻辑表至 OceanBase 数据库 MySQL 租户物理表的汇聚同步,该功能支持分库分表和分库不分表。本文为您介绍如何创建 DBP 逻辑表至 OceanBase 数据库 MySQL 租户物理表的数据同步项目。
使用限制
当前版本仅支持 DBP 有主键逻辑表至 OceanBase 数据库 MySQL 租户物理表的数据同步。
待同步的表名和其中的列名不能包含中文字符。
增量同步 DDL 支持的范围及限制
增量同步 DDL 支持的范围
增加列
例如,
alter table test_3.test_logic_3 add column c29 varchar(40) default NULL;修改列的长度
例如,
alter table logic_test_3.test_logic_3 modify column c29 varchar(60);
增量同步阶段在逻辑表执行的 DDL 会自动同步至目标端,仅限于两类 DDL。在任意一个物理表内执行 DDL,都会进行同步。后续执行相同的 DDL 将不会同步(幂等)。 注意
默认逻辑表执行 DDL 是针对所有物理表都会执行,逻辑表下的物理表的 Schema 不会存在差异。
对于不支持的 DDL,可以设置关键参数
ddlIgnoreUnsupport来控制是否对齐强制执行。默认值为true。如果etransfer解析失败的 DDL,则该参数无效。如果开启强制执行 DDL,即
ddlIgnoreUnsupport = false。则无需关注是否支持该 DDL,均执行并打印日志。如果关闭强制执行 DDL,即
ddlIgnoreUnsupport = true。则仅答应不支持的日志,并忽略执行。
增量同步 DDL 的使用限制
默认逻辑表下的 Schema 是一致的。如果存在不一致的情况(仅对部分表执行 DDL),则会导致数据不一致而无法进行数据同步。
Alter Table Add Column需要携带默认值。通常开启ddlIgnoreUnsupport,会默认拦截无默认值的情况。Alter Table Modified无法处理下述特殊情况。刚开始是一个可以为 null 的列,修改为不能为 null,并进行回拉。此时可能因为数据为 null,而目标端限制不能为 null,导致数据同步失败。
针对上述情况,您可以在目标端先执行 DDL,修改为支持数据为 null,再自动同步后面的 modified DDL。
操作步骤
新建同步项目。
登录 OMS 控制台。
在左侧导航栏,单击 数据同步。
在 数据同步 页面,单击 新建同步项目 > 新建数据库到数据库同步项目。
选择源和目标。
在 选择源和目标 页面,输入 同步链路名 称 。
说明
同步链路名称支持中文、数字和英文字母的组合,且不得超过 64 个字符。
单击 标签 文本框,在下拉列表中选择目标标签。您也可以单击 管理标签,进行新建、修改和删除。详情请参见 通过标签管理数据同步项目。
在 源端 区域,配置各项参数。
参数 描述 表类型 默认选择 逻辑表,且不支持更改。 数据源 如果您已创建 DBP 数据源,请从下拉列表中进行选择。如果未创建,请单击下拉列表中的 添加数据源,在右侧对话框进行添加。参数详情请参见 添加 DBP 数据源。 数据表 在文本框中输入数据表的关键字,从 数据表 下拉列表中选择需要同步的逻辑表。 注意 待同步的表名和其中的列名不能包含中文字符。 分片列 在分片列下拉列表中选择目标分片列。您可以选择多个字段作为分片列,该参数为选填。 分片列用于区分可并发写入至 MySQL 数据库的数据行。如果分片列值相同,则不会出现并发写入的情况。 设置 目标端。
参数 描述 数据源 如果您已创建 OceanBase 数据源,请从下拉列表中进行选择。如果未创建,请单击下拉列表中的 添加数据源,在右侧对话框进行添加。参数详情请参见 添加 OceanBase 数据源。 如果您需要查看 OMS 中所有已创建的数据源,请单击页面下方的 查看数据源。 数据表 从下拉列表中选择目标数据表。 单击 下一步。
设置同步类型。
设置源端同步类型。
参数 描述 同步类型和配置 您可以勾选 全量同步 和 增量同步。 增量同步 包括 数据变更 DML ( Insert、Delete和Update)和 同步 DDL。同步起始位点 指定同步某个时间节点之后的数据,默认为当期系统时间。您可以选择时间节点,也可以直接输入时间戳。 该位点与当前归档日志的保留时间密切相关。如果无特殊要求,可以从当前位点开始启动。 单击 下一步。
系统自动完成对数据同步项目的预检查。
在 预检查 环节,OMS 会检查 DBP 中填写的账号密码是否能访问逻辑表下所有的物理表,并具备 SELECT 权限。同时会检查物理库的 OCP Config URL 是否正确,可以在 sys 租户下执行
show parameters like "obconfig_url",查看结果是否返回 OCP Config URL 信息,用于后续增量阶段拉取日志使用。如果预检查报错,请排查并处理问题后,重新执行预检查,直至预检查成功。如果需要跳过某项预检查,您可以在系统配置中进行设置。
单击 启动任务,启动该项目的增量同步等各项任务。
如果您暂时无需启动任务,请单击 保存,跳转至数据同步项目的详情页面,您可以根据需要手动启动数据同步项目。如果您需要查看详情,请参见 查看数据同步项目详情。
如果数据同步项目运行报错(通常由于网络不通或进程启动过慢导致),您可以在数据同步的列表或详情页面,单击 恢复。