首批通过分布式安全可靠测评,为关键业务系统打造
使用限制
更新时间:2023-06-08 10:49:21
本文为您介绍 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 V1.4.79、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 其它数据库或终端 - MySQL:V5.6、V5.7
- MariaDB:V10.2
- Oracle:11G/12C/18C/19C
- Kafka:V0.9、V2.1
- RocketMQ:V4.7.1
- Sybase ASE:V12.5
- Oracle:11G/12C/18C/19C
OceanBase 云平台的适用版本如下:
V2.5.X
V2.4.X
V2.3.X
数据迁移
在 MySQL 数据库迁移至 OceanBase MySQL 数据库场景中,您需要注意以下使用限制。
| 使用限制 | 影响 |
|---|---|
| MySQL 数据库宿主机需要具备足够的出口带宽。 | 如果未具备足够的出口带宽,会影响日志解析和数据迁移速度,可能导致同步延迟增大。 |
| 仅支持 MySQL InnoDB 存储引擎。 | 其它类型引擎无法使用数据迁移功能。 |
| 增量同步不支持 DDL 自动同步。 | 数据迁移过程中,增量同步环节可能会由于 DDL 操作而中断。 |
| 如果需要进行 增量数据迁移,MySQL 源端需要开启 Binlog 并满足以下要求: binlog_format 设置为 row。 binlog_row_image 设置为 full。 | 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 的实时数据同步场景中,您需要注意以下使用限制:
暂不支持 OB_MySQL 无主键表至 DataHub 的全量数据同步。
当一条链路意外中断进行断点续传时,可能会存在部分重复数据(最近一分钟内),需要下游具备排重能力。
DataHub 官方限制一条消息具体的大小根据云环境而定,通常为 1 MB。
由于是攒批发送,DataHub 限制一次只能发送 4 MB 的消息。如果单条消息满足可发送的前提,您可以通过更改 Connector Sink 端的配置项
batch.size来设置攒批大小,默认为 20 条消息攒批发送(时间窗口一秒内)。
数据库至 Kafka、RocketMQ 的单个同步任务,建议不超过 2000 张数据表,否则可能导致同步性能下降。
暂不支持创建同步至相同的 Kafka 或 RocketMQ 实例、仅 Topic 名称大小写不同的同步任务。
由 OMS V2.0.0 升级至 OMS V2.1.0 及以上的版本,您在 OMS V2.0.0 中创建的同步项目不支持使用修改同步对象功能。
数据库至 RocketMQ 单条消息内容的大小不能超过 4 MB。