版本信息
| 项目 | 描述 |
|---|---|
| 发布日期 | 2025-09-16 |
| 版本号 | V4.3.5_CE_BP4 |
| Commit 号 | 5cf5b92 |
| RPM 版本号 | oceanbase-ce-4.3.5.4-104000042025090916 |
升级说明
- 支持从 V4.3.x 各版本升级到 V4.3.5 BP4 版本。
- 不支持 V4.2.x 系列或更低版本升级到 V4.3.5 BP4 版本。
- 自 V4.3.2 重构了多源数据的持久化格式,升级过程中需要对新旧多源数据格式进行转换,在分区数较多时预留相对充足的升级时间。
- 对于有持续写入的向量场景,需要进行索引重建。
- V4.3.0/V4.3.1升级到 V4.3.5 BP4 版本时,需要提前 1 天停止 transfer 任务。通过
alter system set enable_transfer = False;停止,升级后再设置为True打开。 - V4.3.0/V4.3.1/V4.3.2 升级到 V4.3.5 BP4 版本混部过程中,租户 Leader 在老节点时会导致 transfer 失败,需要升级至 V4.3.5 BP4 版本才能正常执行 transfer。
- 支持 X86 环境无 AVX 指令集机器上旧版 Observer 升级到 V4.3.5 BP4 版本。
特性增强
- MySQL 兼容模式支持 Session 级别私有临时表
V4.1.0 BP4 版本起,MySQL 模式下禁用了临时表功能,V4.3.5 BP4 版本将放开 MySQL 兼容模式使用临时表功能,即支持创建临时表、修改临时表、删除临时表以及基于临时表创建索引等功能。
- 物化视图功能增强
V4.3.5 BP4 持续对物化视图能力进行完善,从功能角度,支持增量刷新物化视图刷新时维度表不刷新,在创建物化视图时,通过新增的 AS OF PROCTIME() 语法指定不需要刷新的表,在执行物化视图增量刷新时,不刷新该表的增量数据;单表聚合的增量刷新物化视图支持 MIN()/MAX() 聚合函数;从易用性角度,支持 MLOG 的自动化管理:在创建增量刷新物化视图时,自动为基表创建/替换所需要的 MLOG 表,并在后台定期清理冗余的 MLOG 表;对物化视图的视图内容和创建物化视图的报错信息进行优化。
- 向量索引功能加固
新版本进行了 VSGA 锁优化;HNSW_BQ 索引支持了 cosine 和 ip 距离;向量场景支持弱读;大规格向量场景下中支持分区表 10M/100M/1B 向量数据规模。
- PS 参数化控制开关
OceanBase 数据库会对 prepare 文本中的常量进行参数化,对于不同常量,可以命中相同的计划。但是在业务使用过程中,对于大小账户场景,可能会有意识地将与大小账号有关的参数,在 prepare 文本中,直接使用常量,不使用 question mark 通配符参数化这些参数;与大小账号无关的参数会使用通配符然后绑定变量。预期这样对于不同大小账号的参数,可以使用不同的执行计划,避免共用一个计划导致的计划不优问题。因此,新版本增加 PS 参数化租户级开关 enable_ps_parameterize,对于不使用 question mark 通配符的场景,用户可以选择性关闭 PS 参数化。PS 协议下支持持 explain into set statement_id 语句。
- SQL 级实时内存展示
历史版本 SQL AUDIT 已记录执行完成的 SQL 内存信息,但缺少实时内存信息展示。在一些业务场景中,需要监控内存整体的使用信息,在内存使用量达到一定比例时,告警当前占用内存较高的 SQL,便于进行后续的运维操作。新版本在视图 [G]V$OB_PROCESSLIST 中增加 SQL/PL 级实时内存资源使用统计,可用于实时进行 TOP N 的 SQL 展示。
- SQL AUDIT 信息完善
基于业务诊断诉求,新版本在视图 [G]V$OB_SQL_AUDIT 中增加用户客户端端口、事务信息等描述字段。
- Full Schema 刷新性能稳定性增强
DDL 后刷新 Schema 的行为从 Session 级更新变更为 Server 级别更新。在同时存在大量 Session 连接的场景下,解决了执行 DDL 操作后每个 Session 连接均触发一次 Schema 刷新操作带来的性能抖动的问题。
-
GIS 函数
ST_AsGeoJSON()支持用于生成列。 -
AP 参数模板关闭默认开启全量旁路导入。
配置项变更
| 配置项 | 变更类型 | 变更说明 |
|---|---|---|
| enable_mlog_auto_maintenance | 新增 | 新增租户级配置项,控制 MLOG 自动创建管理的开关,默认值为 true。 |
| mlog_trim_interval | 新增 | 新增租户级配置项,控制 MLOG 后台自动裁剪任务的调度周期,默认值为 1d。 |
| ob_deterministic_udf_cache_max_size | 新增 | 标记语句执行期,所有 deterministic 的 udf 的缓存池总共可以使用的最大内存量(以字节为单位),如果为 0,则关闭执行期缓存功能。 |
| approx_count_distinct_precision | 新增 | 配置 approx_count_distinct 函数的结果精度,默认值为 10。 |
| enable_ps_parameterize | 新增 | 新增租户级配置项,用于控制开启或关闭 PS 语句在解析时是否参数化。 |
| ob_route_policy | 变更参数值行为 |
|
视图变更
| 视图 | 变更类型 | 变更说明 |
|---|---|---|
| [G]V$OB_SQL_AUDIT | 新增列 |
|
| CDB/DBA/USER/ALL_TABLES | 字段含义变更 | row_movement 字段由 NULL 变更为记录真实的 row movement 启用/禁用状态。 |
| DBA/USER/ALL_ALL_TABLES | 字段含义变更 | row_movement 字段由 NULL 变更为记录真实的 row movement 启用/禁用状态。 |
语法变更
| 语法 | 变更说明 |
|---|---|
| ALTER TABLE xxx ADD INDEX i_xxx(xx), ALGORITHM=INPLACE, LOCK=NONE; | MySQL 模式 ALTER TABLE ADD INDEX 语法 Mock ALGORITHM 和 LOCK 属性。 |
| CREATE MATERIALIZED VIEW mv REFRESH FAST ON DEMAND AS SELECT xxx FROM t1 LEFT JOIN t2 AS OF PROCTIME() ON t1.c1 = t2.c1 LEFT JOIN t3 ON t1.c2 = t3.c2 WHERE xxx; | 在创建物化视图的时候对基表添加 AS OF PROCTIME() 可以指定增量刷新时跳过这张表的刷新,并且 AS OF PROCTIME() 的表不可创建 MLOG。 |
| ALTER SYSTEM LOAD MODULE DATA MODULE = {REDIS | GIS | TIMEZONE} TENANT = tenant_name [INFILE = file_path]; | 新增租户导入指定功能的语法,可以导入 Redis、时区元信息以及空间数据 srsid。该命令只能是系统租户执行。 |
关键缺陷修复
- 优化并发数和压力大场景事务超时的问题。
- 修复源表新增
skip index后,导致备份防御失败报错的问题。 - 修复
const表达式出现在UPDATE和GROUP BY中,被标记成共享表达式,下压到 table scan 中,导致在聚合中填了NULL值导致结果错误的问题。 - 修复迁移等操作导致单机出现多个日志流,线程打满问题。
- 修复链路不指定 database、绑定 outline、remote 执行场景 RT 抖动的问题。
- 修复增大插入 batch 场景下,锁冲突然变高,SQL 反复重试导致 CPU 被打爆的问题。
- 修复
GROUP BY包含JOIN两侧的表达式,执行报错 4016 的问题。 - 修复 ps cursor 执行的 SQL 路由到非 Leader 节点时不会触发二次路由走 remote 计划的问题。
- 修复使用 cs encoding, 对于使用整型存储的列,如果有 filter 下压,可能会发生查询少行或者多行的问题。
- 修复系统表有 outrow lob 数据,
UPDATE或者DELETE时,outrow lob 的 lob 辅助表没有被删除的问题。 - 修复批量写入过程中,冲突行回滚后,回滚的
tx_node被覆盖写掉,导致memtable遍历B+tree的叶节点链表时出错导致的 4377 问题。 - 修复使用有问题的驱动发通过二合一协议 253 长度的 SQL 到 Server 导致 observer crash 的问题。
- 修复
MIN()/MAX()执行性能不优的问题。 - 优化统计信息收集问题。
- 修复使用序列 nextval 值时 unique constraint 冲突的问题。
- 修复
LAG函数的 igore nulls 在存储过程中和 SQL 中表现不一致的问题。 - 修复物化视图刷新 SQL 计划生成时,没有初始化获取
parallel_degree_limit的值,最终 auto dop 使用默认行为限制刷新 SQL 的 dop 问题。