OceanBase
支持的对端数据源及功能
请选择对端数据源,文档相关内容会根据对端数据源不同而调整。
选择对端:MySQL
核心能力
功能 | MySQL |
---|---|
结构迁移 | 是 |
全量数据迁移 | 是 |
增量实时同步 | 是 |
数据校验 | 是 |
数据订正 | 是 |
DDL实时同步 |
|
使用限制与注意点
项 | 说明 |
---|---|
当前仅支持MySQL兼容模式 | Oracle兼容模式尚未验证 |
设置正确的租户 | 创建任务时可以指定租户。请确保需要设置的租户信息、userName中的租户信息均保持一致 |
字段类型与映射
OceanBase | MySQL |
---|---|
BIGINT | BIGINT |
BINARY | BINARY |
BIT | BIT |
BLOB | BLOB |
BOOLEAN | Not Supported |
CHAR | CHAR |
DATE | DATE |
DATETIME | DATETIME |
DECIMAL | DECIMAL |
DOUBLE | DOUBLE |
ENUM | ENUM |
FLOAT | FLOAT |
INT | INT |
LONGBLOB | LONGBLOB |
LONGTEXT | LONGTEXT |
MEDIUMBLOB | MEDIUMBLOB |
MEDIUMINT | MEDIUMINT |
MEDIUMTEXT | MEDIUMTEXT |
NUMBER | Not Supported |
SET | SET |
SMALLINT | SMALLINT |
TEXT | TEXT |
TIME | TIME |
TIMESTAMP | TIMESTAMP |
TINYBLOB | TINYBLOB |
TINYINT | TINYINT |
TINYTEXT | TINYTEXT |
VARBINARY | VARBINARY |
VARCHAR | VARCHAR |
YEAR | YEAR |
必要条件
必要条件 | 说明 |
---|---|
账号权限 | 全量迁移:迁移库表的 SELECT 权限,information_schema SELECT 权限 增量同步:SELECT ,REPLICATION SLAVE,REPLICATION CLIENT 权限,information_schema SELECT 权限 例:grant SELECT ,REPLICATION SLAVE,REPLICATION CLIENT on testdb.* to common_user@'%' |
订阅增量 |
例: telnet [LogProxy:ip][LogProxy:端口号] |
数据源添加参数说明
项名称 | 说明 |
---|---|
网络地址 | 类型分为内网地址和外网地址。一个数据源可以包含一个内网地址和一个外网地址。网络地址格式为ip地址和port。默认添加的为内网地址,需要添加外网地址可以点击右侧+号 |
认证方式 | 支持选择不同的认证方式,例如有账号无密码或者无账号无密码 |
账号 | 数据库服务端账号 |
密码 | 数据库服务端密码 |
描述 | 非必填项,填写描述信息,方便管理数据源 |
物理位置 | 物理位置仅仅是一个标记,在管理多地域数据库时方便识别 |
数据源额外参数
参数名称 | 说明 |
---|---|
obLogProxyHost | oblogproxy server的地址,格式为ip:port,默认端口统一为2983,如果需要订阅增量,该参数不可为空 |
clusterUrl | 可以为空,为空时订阅增量时会使用root server list,不为空时订阅增量会优先使用cluster url |
rpcPortList | 订阅增量时,该参数不可为空,默认端口为2882。如果网络地址包含多个root server(假设为3个),此处填写格式为2882:2882:2882 |
常用源端任务参数
参数名称 | 说明 |
---|---|
filterDDL | 为true时会直接过滤DDL |
timezone | oblogproxy默认时间都按照无时区的unix时间戳存储,该参数支持将时间类型自动做一些时区转换。默认为+08:00,即接续后的时间都会加上8个小时 |
clusterUrl | cluster_url需要从OCP获取,obproxy client会通过cluster url定时获取最新的rs list信息 |
obLogProxyHost | OceanBase LogProxy的Host地址 |
rpcPortList | OceanBase的RPC端口,用于增量同步使用,支持集群模式写多个,格式为rpc_port1;rpc_port2 |
Tips: 所有数据源均有的通用参数配置请参考 通用参数配置
高级功能
写Kafka支持携带列类型信息
OceanBase作为源端时,写入对端Kafka时支持在topic的dbValType字段记录字段类型。CloudCanal实现全量和增量的方式不同,因此订阅全量和增量时改字段类型的值会有所差异。
全量
dbValType在全量迁移过程中,是从源端 INFORMATION_SCHEMA.COLUMNS 中的column_type字段获取,该字段包含数据库类型以及其精度、长度等信息,会与源端数据库中表的原始类型定义保持一致。
增量
OceanBase增量日志中携带的列类型并不是源表中的原始类型,而是OceanBase的内部类型,其和源表原始类型的关系如下表所示。dbValType只包含类型信息,不包含长度、精度信息。
OceanBase | dbValType |
---|---|
BIGINT | bigint |
BINARY | binary |
BIT | bit |
BLOB | blob |
BOOLEAN | tinyint |
CHAR | varchar |
DATE | date |
DATETIME | datetime |
DECIMAL | decimal |
DOUBLE | double |
ENUM | enum |
FLOAT | float |
INT | int |
LONGBLOB | blob |
LONGTEXT | clob |
MEDIUMBLOB | blob |
MEDIUMINT | mediumint |
MEDIUMTEXT | clob |
SET | set |
SMALLINT | smallint |
TEXT | clob |
TIME | time |
TIMESTAMP | timestamp |
TINYBLOB | blob |
TINYINT | tinyint |
TINYTEXT | clob |
VARBINARY | binary |
VARCHAR | varchar |
YEAR | year |