首批通过分布式安全可靠测评,为关键业务系统打造
兼容性说明
更新时间:2026-06-10 19:54:29
Binlog 操作命令
目前 Binlog 服务支持以下 MySQL Binlog 相关命令。
| 命令 | 功能 | 兼容情况 |
|---|---|---|
| SHOW MASTER STATUS | 查询最新 Binlog 文件 | 兼容 |
| SHOW BINARY LOGS | 查询所有 Binlog 文件 | 兼容 |
| SHOW BINLOG EVENTS | 查看所有 Binlog 事件 | 兼容 |
| SHOW PROCESSLIST | 查询连接会话 | 兼容 |
| PURGE BINARY LOGS | 清理 Binlog 文件 | 仅在 Binlog Server 支持,暂不支持通过客户端操作 |
除此之外,Binlog 服务还在 Binlog Server 节点上支持了诸多管控命令,详情请参见 管控命令 章节。
Binlog 协议
| 协议 | 兼容情况 |
|---|---|
| COM_BINLOG_DUMP | 兼容 |
| COM_BINLOG_DUMP_GTID | 兼容 |
| COM_REGISTER_SLAVE | 兼容 |
系统变量
| 变量 | 兼容情况 |
|---|---|
| server_id | 兼容 |
| server_uuid | 兼容 |
| binlog_format | 兼容 |
| binlog_row_image | 兼容 |
| binlog_cache_size | 兼容 |
| binlog_checksum | 兼容 |
| max_binlog_cache_size | 兼容 |
| max_binlog_size | 兼容 |
| binlog_row_query_log_events | 兼容 |
| log_bin | 兼容 |
| log_bin_basename | 兼容 |
| log_bin_index | 兼容 |
| gtid_mode | 兼容 |
| gtid_purged | 兼容 |
| gtid_executed | 兼容 |
| GLOBAL.GTID_EXECUTED | 兼容 |
| GLOBAL.GTID_PURGED | 兼容 |
| GTID_NEXT | 兼容 |
函数
| 函数 | 兼容情况 |
|---|---|
| GTID_SUBSET() | 兼容 |
| GTID_SUBTRACT() | 兼容 |
| WAIT_FOR_EXECUTED_GTID_SET() | 兼容 |
DDL
由于 OceanBase 数据库 MySQL 模式的 DDL 语法与 MySQL 的 DDL 语法存在一定的差异性,即 OceanBase 数据库有一些特有的拓展语法,因此部分 DDL 在使用 MySQL 工具时可能无法解析。
为了解决这种问题,OceanBase 数据库自 V4.1.0_CE_BP2 起新增了系统变量 _show_ddl_in_compat_mode,该变量默认为 0 表示不开启。当开启该兼容模式时,执行 SHOW CREATE TABLE 命令的返回结果将被调整为完全兼容 MySQL 语法的语句。
数据类型
由于 OceanBase 数据库 MySQL 模式与 MySQL 对数据类型在精度、实现方式存在一些差异,因此并非完全地兼容所有数据类型。不兼容的数据类型性说明如下:
VARCHAR 类型最多支持存储 65535 个字节的数据。如果 VARCHAR 类型的长度大于该值,可能导致对应表数据解析异常。
注意
字符集的配置可能影响 VARCHAR 长度的配置,例如,utf8mb4 类型的一个字符占用 4 个字节,则 VARCHAR 最多支持配置长度为 16383。
对 LONGBLOB 和 LONGTEXT 类型最大支持 48 MiB。
MEDIUMBLOB、LONGBLOB、BLOB、MEDIUMTEXT、LONGTEXT、TEXT、JSON 和 GIS 数据类型底层均有 LOB 类型进行存储,默认大于 4KiB 时会在行外存储,存在与 MySQL 不兼容:
行外存储 UPDATE 为行内存储的数据,前镜像输出为 NULL,后镜像输出更新后的数据。
对带行外存储 LOB 列的表,更新非 LOB 列,前后镜像均输出为 NULL。
DELETE 行外存储 LOB 列,前镜像输出为 NULL。
说明
小于 4KiB 的 LOB 列按普通列处理,即实际列数据记录在主表的列上;大于 4KiB 的列值实际存储在 LOB 辅助表内,主表记录该 LOB 列对应的辅助表信息。其中,4KiB 属于默认大小。
OceanBase 数据库 V4.x 版本后不支持虚拟生成列的输出。
不支持 CTAS 场景。
OceanBase 数据库 V4.x 在 CTAS 场景下数据无法输出准确的表名,比如
create table t2 as select * from t1,包括创建t2表以及把t1数据写入t2表,OceanBase 数据库 V4.x 目前只能输出__ctas_xxxx作为临时表名,而不是t2表名)。