基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
使用限制
更新时间:2023-06-08 10:49:34
本文为您介绍 OceanBase 迁移服务(OceanBase Migration Service,OMS)数据迁移和数据同步功能的使用限制。
版本限制
数据同步和数据迁移功能中,OceanBase 数据库、其它数据库或终端的适用版本如下。
分类 数据迁移 数据同步 OceanBase 数据库 V1.4.72、V1.4.78、V1.4.79、V2.1.1、V2.2.20、V2.2.30、V2.2.50、V2.2.52、V2.2.70、V2.2.72、V2.2.74、V2.2.75、V2.2.76、V2.2.76BP1、V2.2.77、V3.1.0、V3.1.1、V3.1.2、V3.2.1、V3.2.2 注意 OceanBase 数据库 V1.x 版本仅支持作为目标端,且作为目标端后不支持正向切换。 V2.2.20、V2.2.30、V2.2.50、V2.2.52、V2.2.70、V2.2.72、V2.2.74、V2.2.75、V2.2.76、V2.2.76BP1、V2.2.77、V3.1.0、V3.1.1、V3.1.2、V3.2.1、V3.2.2 其它数据库或终端 - MySQL:V5.6、V5.7、V8.0
- MariaDB:V10.2
- DB2_LUW:V9.7、V10.5、V11.1、V11.5
- Oracle:11GR2、 12C/18C/19C non-CDB/PDB
- Kafka:V0.9、V2.1
- RocketMQ:V4.7.1
- Sybase ASE:V12.5
- Oracle:11GR2、12cR2 non-CDB、12C/18C/19C
OceanBase 云平台的适用版本为 V2.3.9、V2.4.5、V2.5.0、V3.1.0、V3.1.1 和 V3.1.2。
目前 OMS 仅支持 X86 架构。
数据迁移
在 MySQL 数据库迁移至 OceanBase 数据库 MySQL 租户场景中,您需要注意以下使用限制。
| 使用限制 | 影响 |
|---|---|
| MySQL 数据库宿主机需要具备足够的出口带宽。 | 如果未具备足够的出口带宽,会影响日志解析和数据迁移速度,可能导致同步延迟增大。 |
| 仅支持 MySQL InnoDB 存储引擎。 | 其它类型引擎无法使用数据迁移功能。 |
| 增量同步不支持 DDL 自动同步。 | 数据迁移过程中,增量同步环节可能会由于 DDL 操作而中断。 |
如果需要进行 增量数据迁移,MySQL 源端需要开启 Binlog 并满足以下要求:
|
OMS 将在预检查阶段报错并进行提示,您无法成功启动数据迁移任务。 |
| 如果需要进行 增量数据迁移,MySQL Binlog 日志保留时长不得小于 24 小时。 | 增量数据迁移可能由于 Binlog 的缺失,导致链路中断且无法恢复。 |
| 不支持 MySQL 源端的 Cascade 外键迁移。 | 存在 Cascade 外键的迁移任务会失败。 |
在 Oracle 数据库迁移至 OceanBase 数据库 Oracle 租户场景中,您需要注意以下使用限制。
| 使用限制 | 影响 |
|---|---|
Oracle 源端暂不支持使用 empty_clob() 函数的表进行增量同步。 |
预检查不会拦截,增量同步有异常风险。 |
| 目标端 OceanBase 数据库的版本小于 V2.2.70 时,切换流程补充外键、Check 等对象有不兼容的风险。 | Oracle 源端的外键、Check 约束可能会无法在 OceanBase 数据库创建。 |
| LOB 字段迁移限制。 | 源端的 LOB 字段过大,会导致无法在 OceanBase 数据库存储,造成数据同步异常。 |
| 字符编码与反向同步限制: 当源端和目标端的字符编码配置不同时,结构迁移会提供字段长度定义扩大的策略。例如字段长度 1.5 倍扩大,长度单位从 BYTE 转为 CHAR 等。 转换后可以保证源端不同字符集中的数据能成功迁移至目标端,但割接后反向增量同步可能会出现数据超长无法写回源端的问题。 | 业务数据在割接后向目标端写入,无法回流至源端。 |
数据同步
在 OceanBase 数据库和自建 Kafka 的实时数据同步场景中,您需要注意以下使用限制。
使用限制 影响 OceanBase 数据库宿主机需要具备足够的出口宽带。 如果未具备足够的出口宽带,会影响日志解析和数据迁移速度,可能导致同步延迟增大。 OceanBase 数据库 MySQL 租户作为数据同步任务的源端时,管理控制台暂不支持无主键表。 OceanBase 数据库 MySQL 租户的无主键表暂不支持实时同步。 在 Sybase 数据库和 RocketMQ 的实时数据同步场景中,您需要注意以下使用限制。
使用限制 影响 Sybase 表类型的限制:暂不支持无主键表、分区表的实时数据同步。 Sybase 的无主键表和分区表无法创建实时同步任务。 Sybase 支持的数据类型为: CHAR、NUMERIC、INT、DATETIME、VARCHAR、DECIMAL、SMALLINT、TINYINT、BIT、BINARY、REAL、NVARCHAR和FLOAT。Sybase 包含其它数据类型的数据表,无法作为同步对象。 在 Oracle 数据库和 DataHub 的实时数据同步场景中,您需要注意以下使用限制:
Oracle 数据库的无主键表必须设置分片列,才能正常同步至 DataHub。
如果 Oracle 使用生成列,OMS 当前不会解析生成列的实际数值。同步至 DataHub 时,对应的值为 NULL。
如果 Oracle 使用了
CLOB、BLOB、RAW和LONG RAW等数据类型,涉及这些字段的INSERT操作会在 DataHub 接收到INSERT和UPDATE消息。当一条链路意外中断进行断点续传时,可能会存在部分重复数据(最近一分钟内),需要下游具备排重能力。
在 MySQL 数据库和 DataHub 的实时数据同步场景中,您需要注意以下使用限制:
MySQL 数据库的无主键表必须设置分片列,才能正常同步至 DataHub。
在 OceanBase MySQL 租户和 DataHub 的实时数据同步场景中,您需要注意以下使用限制:
暂不支持 OceanBase 数据库 MySQL 租户无主键表至 DataHub 的全量数据同步。
当一条链路意外中断进行断点续传时,可能会存在部分重复数据(最近一分钟内),需要下游具备排重能力。
DataHub 官方限制一条消息具体的大小根据云环境而定,通常为 1 MB。
由于是攒批发送,DataHub 限制一次只能发送 4 MB 的消息。如果单条消息满足可发送的前提,您可以通过更改 Connector Sink 端的配置项
batch.size来设置攒批大小,默认为 20 条消息攒批发送(时间窗口一秒内)。
数据库至 Kafka、RocketMQ 的单个同步任务,建议不超过 2000 张数据表,否则可能导致同步性能下降。
暂不支持创建同步至相同的 Kafka 或 RocketMQ 实例、仅 Topic 名称大小写不同的同步任务。
数据库至 RocketMQ 单条消息内容的大小不能超过 4 MB。