Release history
oceanbase releases
The Fastest Distributed Database for Transactional, Analytical, and AI Workloads.
All releases
29 shown
- Upgrade paths: V4.2.5_CE/BP1~BP6 → BP7 → V4.4.2_CE_BP1; V4.3.5_CE/BP1~BP5 → BP6 → V4.4.2_CE_BP1; direct upgrade from V4.4.1_CE to V4.4.2_CE_BP1.
- Configuration change: `ob_storage_s3_url_encode_type` default updated to `compliantRfc3986Encoding` (cluster‑level).
- Automatic partition split threshold lowered from 128 MB to 1 MB at table level.
- Experimental primary‑backup strong sync (RPO=0) supporting Max Protection (wait for REDO log on both primary and standby) and Max Availability (auto‑downgrade to async if lag exceeds NET_TIMEOUT).
- Zone‑level TableGroup with new SCOPE attribute for fine‑grained leader distribution across a zone.
- MySQL mode now supports MAX_EXECUTION_TIME hint/session/global variable to limit read‑only SELECT timeout.
Full changelog
版本信息
| 项目 | 描述 |
|----------|-----------------|
| 发布日期 | 2026-05-08 |
| 版本号 | V4.4.2_CE_BP1 |
| Commit 号 | 8cf64ed |
| RPM 版本号 | oceanbase-ce-4.4.2.1-101000022026050611 |
升级说明
- 支持从 V4.2.5_CE/V4.2.5_CE BP1~BP6 升级到 V4.2.5_CE BP7,再升级到 V4.4.2_CE BP1。
- 支持从 V4.3.5_CE/V4.3.5_CE BP1~BP5 升级到 V4.3.5_CE BP6,再升级到 V4.4.2_CE BP1。
- 支持从 V4.4.1_CE 升级到 V4.4.2_CE BP1。
特性增强
-
支持主备库强同步(RPO=0)(最大保护模式和最大可用模式)【实验特性】
- 最大保护模式:最高级别的数据保护,可确保主库故障时不丢数据。在该模式下,事务需等待 REDO 日志在主库和强同步备库均持久化成功后才能提交;备库不可用时主库停止写服务。
- 最大可用模式:在集群可用性不受损前提下提供高等级数据保护。主备库均正常时,事务需等待主库和强同步备库同时持久化后提交;主备链路故障时,一旦主备位点差距超过
NET_TIMEOUT(默认 30 s),主库自动将强同步降级为异步以优先恢复服务;当主备链路恢复且落后时间持续小于HEALTH_CHECK_TIME(默认 60 s)后自动回切强同步。
-
支持 Zone 级表组(TableGroup)
Zone 级表组支持将相关分区按规则聚集在同一个 Zone 内,并使表组内分区 Leader 均匀分布在 Zone 内不同 OBServer 上。解决现有表组
Sharding = None因为数据总量过大而无法用单台 OBServer 承载全部分区数据,Sharding = Partition/Adaptive无法控制分区 Leader 分布而导致性能受限的问题。通过新增SCOPE属性控制分区 Leader 分布方式,原SHARDING属性继续用于控制分区聚集与均衡策略。低版本集群的表组升级至 V4.4.2 BP1 的 SCOPE 属性为 NULL。| SHARDING | SCOPE | 组合策略说明 |
|----------|-------|----------------|
| NONE | SERVER | 表组内全部分区 Leader 聚合到同一个节点 |
| NONE | CLUSTER | 表组内全部分区 Leader 按数据量和权重在集群各PRIMARY_ZONE均匀分布 |
| NONE | ZONE | 表组内全部分区 Leader 按数据量和权重在一个 Zone 内均匀分布 |
| NONE | NULL |相当于 SHARDING=NONE,SCOPE=SERVER 策略 |
| PARTITION | SERVER | 不支持 |
| PARTITION | ZONE | 不支持 |
| PARTITION | NULL | 相当于 SHARDING=PARTITION,SCOPE=CLUSTER 策略 |
| PARTITION | CLUSTER | 表组内分区数据按一级分区规则聚合成分区组,各分区组 Leader 按数据量和权重均匀地分布在集群的各PRIMARY_ZONE。(等价于旧版本sharding=partition) |
| ADAPTIVE | SERVER | 不支持 |
| ADAPTIVE | ZONE | 不支持 |
| ADAPTIVE | NULL | 相当于 SHARDING=ADAPTIVE,SCOPE=CLUSTER 策略 |
| ADAPTIVE | CLUSTER | 表组内表仅能同时为一级分区表或二级分区表;一级分区按一级规则聚合,二级分区以每个一级分区为一个均衡组并按二级规则聚合。表组内各分区的 Leader 在集群各PRIMARY_ZONE均匀分布。(等价于旧版本sharding=adaptive) | -
存储过程性能优化
优化 PL/SQL 存储过程执行性能,包括循环场景(循环+静态 SQL、循环+cursor)性能优化、系统包 LLVM 编译产物拆分到系统租户、Exception 执行性能优化、MySQL 模式 LLVM CG 优化、带 Null 值匿名块参数化。
-
双密码管理功能支持
兼容 MySQL 8.0 双密码机制,解决企业级数据库运维中修改应用账号密码可能导致连接中断的问题,实现密码修改过程中的无缝过渡。
-
执行器增强
持续增强 SQL 执行器稳定性与性能,包括 NLJ 性能优化、单机串行执行下 TOP-N 返回的数据改进为稳定排序(支持同 Sort Key 的数据按排序前顺序返回)、MySQL 模式支持
WINDOW_FUNNEL表达式、MySQL 模式支持ALTER VIEW COMPILE。 -
SCHEMA HISTORY 回收优化
新增 package、routine、ols、udt 对象回收,减少历史记录过多对 schema 刷新性能的影响;优化回收性能并将回收任务改为租户级调度管理。
-
MySQL 只读 SELECT TIMEOUT
MySQL 模式新增
MAX_EXECUTION_TIME控制只读 SELECT 超时时间。| 维度 |
OB_QUERY_TIMEOUT|MAX_EXECUTION_TIME|
|------|--------------------|----------------------|
| 作用域 | 控制整条查询超时时间,适用于SELECT、UPDATE、INSERT、DELETE(除MAX_EXECUTION_TIME控制类型外) | 控制单条只读SELECT SINGLE-STATEMENT QUERY或 MULTI-STATEMENT 场景中的只读SELECT STATEMENT|
| 生效条件 | 始终生效 | 需> 0且语句为只读SELECT,且该只读SELECT不在存储过程中,也不会触发会修改数据的操作(MULTI-STATEMENT QUERY 见下方说明) |- 该变量生效条件为
MAX_EXECUTION_TIME > 0(默认 0,单位毫秒),总体超时时间仍受OB_QUERY_TIMEOUT控制。 - MULTI-STATEMENT 场景下,整个查询执行时间不超过
OB_QUERY_TIMEOUT;只读SELECT同时受MAX_EXECUTION_TIME和OB_QUERY_TIMEOUT约束;特殊情况是当一个 MULTI-STATEMENT 的查询中既包含只读SELECTSTATEMENT,又包含除只读SELECTSTATEMENT 外的SELECT、UPDATE、INSERT、DELETE时,这个查询中的只读SELECTSTATEMENT 受到两个变量同时约束;其他STATEMENT仅受OB_QUERY_TIMEOUT约束。 - SINGLE-STATEMENT 场景下,若
MAX_EXECUTION_TIME > 0,整条查询超时时间为MAX_EXECUTION_TIME。 - 子查询
SELECT * FROM (SELECT * FROM T1);按一个 STATEMENT 处理。
- 该变量生效条件为
-
外表性能优化
包括 Parquet 格式 Page 级预取、外表 CSV 格式并行解析、Hive 表查询优化、ODPS(MaxCompute)大分区多机并行下载优化。
-
向量搜索扩展 similarity 相关函数
新增
similarity功能,支持在LIMIT后通过parameters (similarity=x)指定相似度阈值并过滤低于阈值结果;提供inner_product_similarity、cosine_similarity、l2_similarity三种函数,返回值域为[0,1],表示两个向量的相似度越接近于 1 越相似。具体请参见相似度函数。 -
IVF 向量索引性能优化
IVF/IVF_PQ索引在构建、查询、DML、易用性四个维度升级。构建侧通过 Kmeans 并行化和 domain id merge 框架适配提升构建效率;查询侧引入迭代式过滤算法,按过滤率智能选择 pre/post filter;DML 侧通过缓存机制优化增量写入;易用性侧支持索引重建参数修改、构建进度监控、语句级 nprobes 参数动态配置。具体请参见IVF 系列索引 -
收集实时统计信息
存储层收集实时统计信息,增强可观测性。
-
小事务转储状态优化
针对高频小事务场景优化事务状态回填机制,加速数据清理;避免长事务阻塞回收,即使存在未提交事务也可清理已完成事务数据,提升读写性能。
-
其他性能优化
- 优化涉及外键、trigger 等复杂条件 DML 语句性能。
- OBKV 模式新增 CDC 不同步 TTL DELETE 日志能力,以降低 I/O 压力。
产品行为变更
| 功能 | 变更说明 |
|------|----------|
| 自动分区分裂阈值下限值调整 | 表级自动分区分裂阈值下限从 128MB 下调至 1MB。 |
| 集群级配置项 ob_storage_s3_url_encode_type 默认值修改 | 默认值修改为 compliantRfc3986Encoding(仅对 S3 SDK 生效)。 |
| OBCDC 适配 IPv6 改造 | OBCDC 支持 IPv6。 |
视图变更
| 视图 | 变更类型 | 变更说明 |
|------|----------|----------|
| [G]V$OB_SQL_AUDIT | 新增列/列语义变更 | 新增 COMMIT_TIME、TX_TABLE_READ_CNT、OUTROW_LOB_CNT、OBJECT_STORAGE_READS、PARENT_TRACE_ID 等列;其中 COMMIT_TIME 记录事务提交耗时。ELAPSED_TIME 列语义变更为包含 COMMIT_TIME。 |
| GV$SQL_AUDIT | 新增列 | 新增 COMMIT_TIME(bigint(20)),表示 SQL 提交耗时(微秒)。 |
| DBA_OB_USERS / CDB_OB_USERS | 新增列 | 新增 old_password(varchar(128))和 old_password_start_time(bigint(20))列,用于双密码信息管理。 |
| mysql.user | 新增列 | 新增 user_attributes(longtext)列,用于存储扩展属性(JSON 格式),双密码信息存储在 JSON 对象的 additional_password key 中。 |
| DBA_PROFILES | 新增列 | 新增 password_rollover_time,用于控制密码轮转有效期(微秒),并新增 PASSWORD_ROLLOVER_TIME 资源项展示。 |
| DBA_USERS / USER_USERS | 列值逻辑变更 | ACCOUNT_STATUS 新增状态 OPEN & IN ROLLOVER,表示账户正常且处于密码轮转期,新旧密码均可使用。 |
| ALL_OBJECTS / DBA_OBJECTS / USER_OBJECTS | 新增类型 | 新增 OBJECT_TYPE='JAVA CLASS',用于展示上传的 Java Class 对象。 |
| DBA_OB_TENANTS | 新增列 | 新增 PROTECTION_MODE 和 PROTECTION_LEVEL,用于展示主备库保护模式与保护级别。 |
| CDB/DBA_OB_SYNC_STANDBY_DEST | 新增视图 | 系统/用户租户下查看各租户强同步下游信息。 |
| CDB/DBA_OB_TABLEGROUPS | 新增列 | 新增 SCOPE(VARCHAR(20))列,展示表组分布范围(SERVER/ZONE/CLUSTER)。当 SCOPE 为空时,SHARDING='NONE' 显示 SERVER,SHARDING='PARTITION'/'ADAPTIVE' 显示 CLUSTER。 |
| CDB/DBA_OB_TABLEGROUP_TABLES / CDB/DBA_OB_TABLE_LOCATIONS | 新增列 | 新增 SCOPE 列,展示表所属表组分布范围属性。 |
| SHOW TABLEGROUPS | 新增列 | 新增 SCOPE 列,展示表组分布范围属性。 |
| CDB/DBA_SCHEDULER_RUNNING_JOBS | 新增 | 展示租户下正在运行的 job,包含 20 个字段。 |
| CDB_SCHEDULER_JOBS | 新增 | 展示所有租户下所有 job(运行中和未运行),补充 DBA_SCHEDULER_JOBS 对应 CDB 视图。 |
| DBA_OB_ROOTSERVICE_EVENT_HISTORY | 新增列 | 新增 OLD_VALUE(通过 NAME4/VALUE4 展示),记录配置项修改前旧值。EVENT='admin_set_config' 时,NAME4='old_value'。 |
| GV$SESSION_LONGOPS | 新增信息 | IVF 聚类构建阶段新增进度信息,格式为 VEC_TASK:{TRI_CNT, CUR_ITER, END_DIFF, DIFF, IMPALANCE, SUCC_TABLET}。 |
| GV$OB_LOG_STAT | 新增列 | 新增 SYNC_MODE(VARCHAR(128)),展示日志流同步模式:ASYNC、SYNC、PRE_ASYNC。 |
| DBA_JAVA_POLICY / USER_JAVA_POLICY | 新增视图 | 新增 Java Policy 管理相关视图。 |
| DBA_TAB_PRIVS / USER_TAB_PRIVS / ALL_TAB_PRIVS | 新增权限 | 新增 RESTRICTED SESSION 权限。 |
语法与函数变更
| 语法/函数 | 适用租户 | 说明 |
|-----------|----------|------|
| CAST AS BIGINT | MySQL | 支持将数据转换为 bigint 类型。 |
| ALTER USER 'user'@'host' IDENTIFIED BY 'new_password' RETAIN CURRENT PASSWORD | MySQL | 双密码支持,修改密码时保留旧密码作为次密码,新旧密码同时有效。 |
| ALTER USER 'user'@'host' DISCARD OLD PASSWORD | MySQL | 双密码支持,丢弃旧密码,仅保留当前主密码。 |
| MAX_EXECUTION_TIME(N) hint | MySQL | SQL hint 语法,N 为毫秒,用于设置单条 SELECT 超时时间。 |
| SET SESSION max_execution_time = N | MySQL | 会话级系统变量设置。 |
| SET GLOBAL max_execution_time = N | MySQL | 全局级系统变量设置。 |
| ALTER SYSTEM SET SYNC_STANDBY_DEST = "SERVICE=host NET_TIMEOUT=20 HEALTH_CHECK_TIME=40s USER=user_name@tenant_name PASSWORD=password" [tenant = "tenant1"] | MySQL | 设置强同步备库目的端。host 为备库 IP 列表(分号分隔),NET_TIMEOUT 默认 30s,HEALTH_CHECK_TIME 默认 60s,USER/PASSWORD 为复制专用用户凭据。 |
| ALTER VIEW [database.]view_name COMPILE | MySQL | MySQL 模式支持带 database 限定的语法。 |
| CREATE TABLEGROUP tablegroup_name [SHARDING = 'NONE'] [SCOPE = 'CLUSTER'] | MySQL | 创建表组时支持指定 SCOPE=CLUSTER,实现全集群打散(需租户所在集群版本 >= V4.4.2 BP1)。 |
| ALTER TABLEGROUP tablegroup_name SCOPE = 'CLUSTER' | MySQL | 支持修改表组 SCOPE 属性(需租户所在集群版本 >= V4.4.2 BP1)。 |
| window_funnel(window, mode, timestamp, cond1, cond2, ..., condN) | MySQL | 漏斗分析聚合函数,返回值范围 [0, N],支持 default 和 strict_deduplication 两种模式。 |
| cosine_similarity(vector_1, vector_2) | MySQL | 计算余弦相似度,值域 [0,1]。 |
| l2_similarity(vector_1, vector_2) | MySQL | 计算 L2 相似度,值域 [0,1]。 |
| inner_product_similarity(vector_1, vector_2) | MySQL | 计算内积相似度,值域 [0,1]。 |
| SELECT ... ORDER BY distance_expr APPROX LIMIT k PARAMETERS (similarity=x) | MySQL | 向量查询支持按相似度阈值过滤(x 取值 [0,1])。 |
| CALL DBMS_VECTOR.REBUILD_INDEX(index_name, table_name, column_name, trigger_percent, extra_args1, extra_args2, build_param) | MySQL | 支持通过存储过程重建向量索引并修改索引类型和参数。 |
| SELECT ... ORDER BY distance_function(column, vector) APPROXIMATE LIMIT n PARAMETERS(IVF_NPROBES=value) | MySQL | 支持语句级指定 IVF_NPROBES 查询参数。 |
| CALL dbms_vector.rebuild_index(index_name, table_name, column_name, delta_rate_threshold, index_organization, distance_metrics, index_parameters) | MySQL | 支持修改 IVF 索引参数重建,覆盖 IVF_FLAT 与 IVF_PQ 主要参数。 |
配置项变更
| 配置项 | 类型 | 默认值 | 生效级别 |
|--------|------|--------|----------|
| schema_history_expire_time | TIME | 7d | 租户级(原集群级) |
| schema_history_recycle_interval | TIME | 10m | 集群级 |
| schema_history_archive_expire_time | TIME | 0 | 租户级 |
| max_execution_time | INT | 0 | SESSION/GLOBAL |
| audit_log_enable | BOOL | FALSE | 租户级 |
| audit_log_buffer_size | CAPACITY | 16M | 租户级 |
| audit_log_compression | STRING | NONE | 租户级 |
| audit_log_path | STRING | "" | 租户级 |
| audit_log_format | STRING | CSV | 租户级 |
| audit_log_max_size | CAPACITY | 0M | 租户级 |
| audit_log_prune_seconds | INT | 0 | 租户级 |
| audit_log_query_sql | STRING | ALL | 租户级 |
| audit_log_rotate_on_size | CAPACITY | 256M | 租户级 |
| audit_log_strategy | STRING | ASYNCHRONOUS | 租户级 |
| audit_log_encryption | STRING | NONE | 租户级 |
| ob_vector_search_strategy | INT | 变更为 RECALL_FIRST | 租户级 |
| ob_storage_s3_url_encode_type | STRING | compliantRfc3986Encoding(原为 default) | 集群级 |
| zone_disk_balance_tolerance_percentage | INT | 10 | 租户级 |
Fixes replication table upgrade failures with vector indexes and vector search inconsistencies.
Stability hotfix addressing vector index memory leaks, performance issues, and query errors.
Fixes memory access overflow causing Core crashes in bypass import scenarios.
- Partition exchange between multi-level and single-level partitions
- Session-level temporary tables and OBCDC table-level recovery sync
- Materialized view enhancements with outer join and UNION ALL support
Full changelog
版本信息
| 项目 | 描述 |
|----------|-----------------|
| 发布日期 | 2026-03-05 |
| 版本号 | V4.4.2_CE |
| Commit 号 | e859d1b |
| RPM 版本号 | oceanbase-ce-4.4.2.0-100000032026021017 |
版本概览
OceanBase V4.4.2 是面向混合负载的 TP/AP 大融合 LTS 版本,深度集成 4.2.5 LTS 的事务处理能力与 4.3.5 LTS 的分析处理能力,在数据管理、兼容性、系统安全和运维诊断等多维度系统性增强内核能力,为关键交易负载与复杂分析负载提供更强大、更稳定的技术支撑。
在 TP 场景下,新版本支持二级分区表的一级分区与普通一级分区表进行交换,极大简化大规模数据分区管理和数据重组;新增 Session 级私有临时表,完善临时表体系。OBCDC 支持表级恢复后的增量数据同步,并支持同步 virtual 生成列,更好地满足下游系统对表级增量数据和生成列的消费需求。
KV 场景下,持续完善 OBKV 能力,新增弱读、TTL 支持索引扫描、热 Key 查询优化等特性,并完成对 OBKV‑HBase 监控项的治理,在高并发 KV 与时序场景下提供更低时延与更强可观测性。
性能方面,V4.4.2 面向细分场景进行了专项优化:串行建表性能在同等场景下提升约 60%。针对国产化大规格 CPU 环境,PDML 性能提升约 25%,复制表 Follower 查询性能提升约 14 倍,逼近 Leader 查询能力,显著增强系统横向扩展能力。同时,引入 PX 自适应任务切分机制,自动识别并切分长尾任务,实现并行查询负载重均衡,加速查询完成。
在安全与运维诊断方面,优化死锁检测机制,增强 Active Session History (ASH) 数据完整性,并重构 SQLSTAT 统计信息,为数据库管理员定位性能瓶颈和异常 SQL 提供更精细、更可靠的诊断工具。
V4.4.2 作为 LTS 版本,推荐 TP、AP 和 HTAP 业务使用。
关键特性说明
内核增强
-
分区交换支持一级与二级分区表交换
分区交换功能新增支持二级分区表的一级分区与一级分区表进行交换。具体请参见 分区交换。
-
OBCDC 支持表级恢复后增量数据同步
OBCDC 支持黑白名单功能,在进行数据同步时,只同步在白名单并且不在黑名单中的表,因为表级恢复流程是 offline ddl 流程,对恢复出来的表,OBCDC 获取不到 table_name,无法支持表级恢复后的表的增量数据同步。新版本在 OBServer 表级恢复流程的最后,在 __all_ddl_operation 表中新增字段记录恢复后的表名,这样 OBCDC 就可以识别这个恢复后的表,并根据表名做黑白名单匹配,进而支持增量数据同步。
-
物化视图功能增强
V4.4.2 版本继续完善物化视图能力,包括:
- DDL 能力增强,支持
RENAME、物化视图日志支持加列。 - 增量刷新功能增强,新增支持外连接、
UNION ALL、单表非聚合模式、带LEFT JOIN的聚合物化视图等类型,支持重复的SELECT ITEM和GROUP BY列,MIN/MAX聚合物化视图增量刷新功能增强。 - 嵌套物化视图能力增强,支持级联刷新。
- 物化视图刷新时维度表不刷新,在创建物化视图时,通过新增的
AS OF PROCTIME()语法指定不需要刷新的表,在执行物化视图增量刷新时,不刷新该表的增量数据。 - 单表聚合的增量刷新物化视图支持
MIN()/MAX()聚合函数。 - MLOG 自动化管理,在创建增量刷新物化视图时,自动为基表创建/替换所需要的 MLOG 表,并在后台定期清理冗余的 MLOG 表。
md5_concat_ws函数支持。- 物化视图的视图内容和创建物化视图的报错信息优化。
- 支持基于无主键的增量物化视图。
- 支持引用声明为
AS OF PROCTIME()的视图。 - 物化视图支持 UDT 和 UDF,支持
minimal模式。
- DDL 能力增强,支持
-
SQL 能力增强
V4.4.2 版本,对多项 SQL 能力进行了增强,支持视图过滤条件包含子查询时指定
WITH CHECK OPTION。 -
支持 Session 级别私有临时表
V4.1.0 BP4 版本起禁用了临时表功能,V4.4.2 版本放开临时表功能,支持创建临时表、修改临时表、删除临时表以及基于临时表创建索引等功能。
-
语法扩展
新增
CAST AS INTEGER、CAST AS ARRAY、SPLIT、CONTAINS、NEXTVAL(SEQ)/CURRVAL(SEQ);支持ARRAY<>格式数组定义;支持 JSON 类型列转换为TEXT/MEDIUMTEXT/LONGTEXT;INSERT OVERWRITE支持INTO关键字;SQL 后只加--符号,修改为执行不报错;RANGE、MAXVALUE保留关键字更改为非保留。具体请参见 CAST。 -
备库读功能优化与稳定性增强
V4.4.2 版本,对备库读功能进行了优化,通过优化事务状态推断机制,将原本需要每个副本独立收集参与者状态的方式,改为由协调者 Leader 统一收集和缓存,显著减少消息交互次数。同时引入重试机制,在副本落后时自动转发请求至其他副本处理,以避免阻塞或对事务状态进行错误推断,提升备库读场景的稳定性。
-
支持异构 zone
OceanBase 4.0 设计了同构 zone 的架构,虽然简化了集群部署架构,但是丢失了部分 OceanBase3.x 支持的功能,比较常见的问题是,在单个节点宕机场景下,需要缩容时,需要同时对所有 zone 进行缩容,导致资源浪费。为了解决上述问题,增强 OceanBase 的扩缩容能力,新版本支持了异构 zone 部署架构。
在异构 zone 部署架构下,租户允许配置两种不同的 UNIT NUM,当出现单个节点故障时,可以直接删除故障节点,不需要调整其他 zone,降低了运维成本。同时单个节点宕机,不会影响其他 zone 的负责均衡,降低了对业务流量的影响,实现更平滑的扩缩容。使用手册参考平滑扩缩容应用案例。
-
OBCDC 支持同步 virtual 生成列
OceanBase 4.0 版本开始,虚拟生成列不再记录在 CLOG 中,因此 OBCDC 无法从 CLOG 中同步虚拟生成列,这对依赖虚拟生成列的下游系统而言,无法获取虚拟生成列的值也就意味着数据的丢失,是不可接受的。新版本 OBCDC 支持了同步 virtual 生成列,满足下游系统对虚拟列数据的消费需求。
SQL 兼容
-
Union Distinct RCTE
CTE 支持 Recursive Union All 及 Recursive Union Distinct。新版本扩展支持 Recursive Union Distinct,保证输出数据的唯一性;同时加强 Recursive Union All,支持内存不足时数据落盘。具体请参见通用表表达式。
OBKV/多模 增强
V4.4.2 版本对 OBKV/多模场景能力做了多项增强,主要包括以下几个方面:
-
OBKV 支持弱读和就近机房读
- 弱读,允许业务从非主副本(Follower)读取数据,由于这些副本可能不是最新的,因此读到的数据可能是略旧于主副本的版本。
- 就近机房读,客户端根据当前地理位置或网络拓扑,优先从离自己最近的机房读取数据,以减少网络延迟,提高响应速度。
-
TTL(Time To Live)支持索引扫描功能
允许用户通过指定索引来加速 TTL 数据清理过程。默认的主键扫描场景下,TTL 任务需要进行全表的扫描并且读取完整的行来判断是否过期,通过对过期列建立本地索引可以降低全表扫描完整行带来的 IO 开销,加速扫描的速度。使用说明参考 OBKV-Table TTL 和 OBKV-HBase TTL。
-
OBKV-HBase 监控增强
OBKV-HBase 监控能力增强,主要包括:
* 区分 HBase get 和 scan 在 QPS、RT 和 P99 监控中的统计,分别使用独立的监控项进行跟踪。
* 在 batch 场景下支持区分单 put 和单 delete 操作,提供更细粒度的监控统计。
* 在未开分布式的情况下,HBase batch get 操作已支持使用 audit 跟踪。
* 在 OBKV-HBase 客户端新增返回相应操作的 OPS、RT 和 P99 数据。
新增监控项说明请参见 OBKV-HBase 监控指标。 -
时序模型支持 put 操作
由于时序模型的
V列是 json 类型,受限于 lob 无法支持 put 操作,时序 put 操作是基于 insert 接口实现。insert 接口在执行时会进行主键冲突检查,在压测中发现主键冲突检查占用大量的读带宽,冲突检查需要对 sstable 发起 get 操作,此时读延迟会很高,同时在随机写入场景下(大部分用户场景),转储合并占用的 IO 带宽也会很大,两者叠加会让云盘带宽很快达到上限瓶颈,从而触发写入限速。因此,在 V4.4.2 版本支持 put 操作,解决上述问题。 -
OBKV-HBase 查询优化
OBKV-HBase 的查询采用全范围扫描策略, 先扫描所有 qualifiers 的数据再进行过滤。这种方式在服务端会产生大量冗余扫描和处理开销, 特别是当对一个宽行或者多版本的行查询只涉及少量 qualifiers 时, 延迟问题尤为明显。 在 V4.4.2 新增一个配置项
HBASE_HTABLE_HOTKEY_GET_OPTIMIZE_ENABLE用于指定快速跳过宽行或多版本的行来降低查询时延。功能详细说明请参见 OBKV-HBase 查询优化。
性能提升
-
串行建表性能优化
为了提升 DDL 的性能,在 4.2.x 版本支持了 CREATE/DROP 等 DDL 的并行执行能力,但是当存在未支持并行的 DDL 时,无法利用并行 DDL 能力,因此需要优化串行 DDL 的性能。本特性以串行建表为目标场景,对 schema 的生成、写入与刷新等环节进行了优化,能够明显提升串行建表的速度,也能够小幅提升其他类型 DDL 的运行速度。经测试,创建 1000 张 sysbench 简单表,V4.4.2 相比 V4.3.5,性能提升 60%。
-
库函数申请内测性能优化
基于 mimalloc 内存分配器思想设计的库函数的内存分配优化,主要用于提升 OceanBase 中库函数在高频小对象场景下的内存分配效率。通过引入分片式内存块组织、延迟空闲回收及无锁竞争机制,显著优化库函数分配内存的性能,有效降低分配延迟与资源争用,为大规模高并发业务提供高效、稳定的内存管理支撑。
-
国产化大规格机器场景下的性能优化
主要对国产化 CPU 环境下典型场景的的 CPU 热点进行优化, 包括优化 PDML 和 复制表查询的性能。在大规格 256c 环境中高并发 PDML 性能将提升25%,并减少了非 PDML 场景的内存;业务连 Follower 查询复制表的性能提升 14 倍,从 2w QPS 增长到 27w+,与直接连 Leader 查询的 30w QPS 之间差距不到 10%。在 32c 的小规格环境上述优化对性能同样存在提升。
-
PX 自适应任务切分
针对PX扫描中出现长尾任务现象,自适应的对长尾任务再次划分,实现负载重均衡能力,加快查询速度。具体请参见 分布式执行和并行查询。
易用性提升
-
死锁检测诊断优化
为了提升死锁检测的易用性,新版本新增多项诊断优化,死锁检测发现死锁后汇报内部表时,携带更加丰富的信息,完善锁到事务的映射逻辑,同时增加了对切主场景的死锁检测能力,同时,修复了转储场景中,诊断信息维护不准确的问题,提升诊断稳定性。
-
实时统计信息收集
GV$OB_SQL_AUDIT 和 GV$SQL_PLAN_MONITOR 是常用的 SQL 监控视图,记录了每一次 SQL 请求的来源、执行状态、资源消耗及等待时间、 SQL 文本、执行计划、算子消耗的时间、吐行等关键信息。但在逆序扫描等涉及存储层信息收集的场景下,仍然存在信息不足的问题。为了进一步提升 SQL 诊断的易用性,在 4.4.2版,存储层新增实时统计信息并记录在监控视图中,包括查询访问的微块数和行数、下压的微块数和行数、走下压路径的耗时、不走下压路径的耗时、skip index跳过的微块数和行数等主要信息,并增加filter过滤的行数、filter过滤的耗时、读到的未提交行数量等信息,同时优化了 SQL Audit等监控视图中统计信息收集到数据不完整和不准确的问题。
-
ASH 数据完整性增强
V4.2.5 对 ASH 进行了重构,ASH 可以跟踪租户队列请求的状态,每一个请求每一秒都会向 ASH buffer 写入一条记录,目前 ASH buffer 是 30M,大概能存五万条数据,每两分钟检测一次是否需要将内存中的数据落盘,但在队列大量积压场景下,ASH buffer 来不及落盘数据就已经被覆盖了,会丢失问题事件的重要诊断数据。V4.4.2 申请 __all_virtual_ash 表增加权重列 weight,默认为1,当 ASH buffer 可能被快速写爆时(一般是由于队列积压),不会对每一个队列积压等待事件写一条 ASH 记录,而是通过 weight 标志一条记录权重,从而增强诊断数据的完整性。
-
SQLSTAT 重构
Sqlstat 记录了 sql id+plan hash 维度的统计信息,根据这些信息,可以较为直接地判断出这个 SQL 是否存在问题,协助找到 RT 异常的 sql 。但是目前版本,sqlstat 存在一些已知问题:
- plan cache 共用 lib cache,sqlstat 占用过多 lib cache 导致计划无法加入 plan cache。
- 在更新 sqlstat 快照值时只更新了 leader 节点的,而没有更新 follower 节点的数据快照,导致 follower 节点数据错误。
- sqlstat 落盘时间为 1 小时一次,无法及时反应 SQL 执行情况。
为了解决上述问题,在 V4.4.2 版本对 sqlstat 进行了重构,主要涉及内容: - 将 sqlstat 从 library cache 移除,维护一个租户 hashmap,定时执行快照和淘汰。
- 每次 SQL 执行完成之后,先累加到 physical plan 上,达到累计次数后再累加到租户 hashmap 上。
- 查询虚拟表时先将 physical plan 上的数据累加到租户 hashmap 上,然后再输出数据。
兼容性变更
视图变更
新增如下变更:
| 视图 | 变更类型 | 变更说明 |
|----------|--------------|--------------|
| DBA_OB_LOB_CHECK_TASKS | 新增 | 记录 LOB 一致性校验和恢复的任务扫描的进度,可通过该视图查询租户级任务与 LS(Logical Shard)级任务,查询租户级任务时 |
| CDB_OB_LOB_CHECK_TASKS | 新增 | 记录 LOB 一致性校验和恢复的任务扫描的进度 |
| DBA_OB_LOB_CHECK_EXCEPTION_RESULT | 新增 | 展示 LOB 一致性校验的异常 table 和 tablet 以及异常类型 |
| CDB_OB_LOB_CHECK_EXCEPTION_RESULT | 新增 | 展示 LOB 一致性校验的异常 table 和 tablet 以及异常类型 |
| GV$ACTIVE_SESSION_HISTORY / V$ACTIVE_SESSION_HISTORY / GV$OB_ACTIVE_SESSION_HISTORY / V$OB_ACTIVE_SESSION_HISTORY | 新增列 |
- 增加 WEIGHT 列和 IS_WR_WEIGHT_SAMPLE 列
- WEIGHT 表示 workload_repository 中一条 ASH 记录的权重,默认为 1
- IS_WR_WEIGHT_SAMPLE 表示是否为队列积压等待事件压缩列
| DBA_WR_SQLSTAT/CDB_WR_SQLSTAT | 变更实现 | SAMPLE_TIME 列,表示 sqlstat 快照落盘的时间,在一次 WR 快照间隔内,sqlstat 可能落盘多次 |
| GV$OB_SQLSTAT | 新增列 | 新增 latest_active_time,表示这个 sqlstat 最后一次活跃的时间 |
| DBA_OB_KV_TTL_TASKS | 新增列 | 新增 scan_index,记录 TTL 任务扫描的索引 |
| DBA_OB_KV_TTL_TASK_HISTORY | 新增列 | 新增 scan_index,记录 TTL 任务扫描的索引 |
| CDB_OB_KV_TTL_TASKS | 新增列 | 新增 scan_index,记录 TTL 任务扫描的索引 |
| CDB_OB_KV_TTL_TASK_HISTORY | 新增列 | 新增 scan_index,记录 TTL 任务扫描的索引 |
系统变量
系统变量 | 修改类型 | 描述 |
|----------|--------------|--------------|
| json_float_full_precision | 新增 |
- 设置是否以全精度解析 JSON 中数字(但速度较慢)
- json_float_full_precision 为 false 时,以低精度解析 json 中的数值,速度更快
- json_float_full_precision 为 true 时,以高精度解析 json 中的数值,速度更慢
函数变更
函数名 | 变更类型 | 描述 |
|----------|--------------|--------------|
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS() | 新增参数 |
- 原来 MODIFY_SNAPSHOT_SETTINGS 有三个参数 retention、interval 和 topnsql,新增一个参数 sqlstat_interval 代表 sqlstat 采样间隔时间(分钟)
- sqlstat_interval 默认值为 10 分钟
语法变更
| 语法 | 变更说明 |
|----------|--------------|
|WITH CHECK OPTION 支持子查询 | 兼容支持 WITH CHECK OPTION 带子查询的行为 |
周边配套
OceanBase 数据库 V4.4.2 推荐使用的平台工具版本如下:
| 组件 | 版本 | 备注 |
|----------|--------------|--------------|
| ODP | 4.3.6 | - |
| OCP | 4.4.1 | - |
| OBD | 4.2.0 | - |
| ODC | 4.4.1bp1 | - |
| OBCDC | OBCDC 4.4.2 | - |
| OMS | 4.2.12 | - |
| obclient | obclient2.2.10 | - |
| libobclient | libobclient2.2.10 | - |
升级说明
- 升级路径
- 支持从 V4.2.5 BP7/V4.4.1 平滑升级到 V4.4.2 版本。
- 不支持使用了向量的集群升级到 V4.4.2 版本。
- 支持从4.3.0/4.3.1/4.3.2/4.3.3/4.3.4/4.3.5.0/4.3.5BP1/4.3.5BP2的升级,但仅限于POC和测试环境,有一定的风险
- 升级注意事项
升级到 V4.4.2 时,如果升级前置检查报如下错误:
tenant has sys table with progressive_merge_round=1: tenant_id xxx table_ids 'xxx'
- 如果当前是 V4.2.5 BP7 版本,则需要升级到 V4.2.5 BP7 HF1 版本后再升级到 V4.4.2 版本。
- 如果当前是 V4.3.5 BP2 以及之前的版本,升级遇到该问题,则表示暂时无法支持该升级。
Fixes vector index rebuild failures, CDC processing hangs, memory management issues, and query optimization in multiple scenarios.
Fixes core crashes in vector operations, memory management issues, and query accuracy in partitioned tables.
Resolves core crashes in vector index operations, memory escalation during upgrade, and query performance degradation.
- Primary zone selection optimization for balanced leader distribution in 4F1A deployments
- Enhanced SQLSTAT with multi_query, muti_query_batch_execute, full_table_scan, and error_count tracking
- ASH REPORT generation acceleration, backup and archiving OSS WORM support
Full changelog
版本信息
| 项目 | 描述 |
| ------ | ------ |
| 发布日期 | 2025-12-05 |
| 版本号 | V4.2.5_CE_BP7 |
| Commit 号 | 96355d7 |
| OBServer RPM 版本号 | oceanbase-ce-4.2.5.7-107000022025120120 |
升级说明
-
支持 V4.2.1_CE_BP10 及之前版本先经停 V4.2.1_CE_BP11 版本后再升级到 V4.2.5_CE_BP7 版本。
-
V4.2.2_CE 版本需要经停 V4.2.2_CE_BP1 版本升级到 V4.2.5_CE_BP7 版本。
-
V4.2.3_CE/V4.2.4_CE/4.2.5_CE 版本可以直接升级到 V4.2.5_CE_BP7 版本。
功能增强
-
优化选主策略
针对 4F1A 场景,primary_zone 设置为 "z1,z2;z3,z4",当 z1、z2 所在 region 不可用时,在 V4.2.5 BP7 之前的版本,会选举 IP 最小的 Zone 作为新主,即 Leader 会全部切到 z3 而非均衡到 z3 和 z4。在 V4.2.5 BP7 支持了优化选主策略后,当高优先级的所有 Zone 都不可用时,Leader 会均匀打散到低一个优先级的各 Zone,即 Leader 会打散分布在 z3 和 z4 上,由此提高系统的高可用性。
-
SQLSTAT 能力增强
支持
multi_query用以判断路由错误和同步提交;支持muti_query_batch_execute可以用来判断语句是否走 Batch 优化;支持full_table_scan用以判断 SQL 出现全表扫的次数;支持error_count用以统计 SQL 报错情况。更多详细内容,请通过GV$OB_SQLSTAT或DBA_WR_SQLSTAT等视图获取。 -
ASH REPORT 生成加速
由于 ASH REPORT 的生成涉及 JOIN ASH 数据和 WR 数据,耗时较长,本特性在不改变 ASH REPORT 的行为的情况下,加速了 ASH REPORT 的生成。
-
备份归档适配 OSS WORM
阿里云 OSS 提供了 WORM(Write Once Read Many) 特性,用户通过命令为 Bucket 配置保留策略后,在保留策略指定的 Object 保留时间到期之前,仅支持在 Bucket 中上传和读取 Object。Object 保留时间到期后,才可以修改或删除 Object。新版本 OceanBase 数据库备份归档适配了阿里云 OSS 的 WORM 特性,支持使用已配置合规保留策略的 OSS Bucket 作为备份归档目的端,帮助用户满足数据安全存储及政策合规要求。
语法变更
| 语法 | 变更说明 |
| -------- | ----------- |
| update table1 set (col)=xxx | 新增支持 SET 带括号。 |
| with check option 支持子查询 | 兼容 MySQL 中 With Check Option 带子查询的行为。 |
| DBMS_METADATA.GET_TABLE_INDEX_DDL(table_name,ob_schema) | 新增接口用来批量提取主表 TABLE 的索引 DDL 语句。 |
视图变更
| 视图 | 变更类型 | 变更说明 |
| -------- | ----------- | ------------ |
| DBA_OB_UNITS | 新增列 | 新增 replica_type 列,用于描述副本类型。|
| [G]V$OB_UNITS | 新增列 | 新增 replica_type 列,用于描述副本类型。 |
| [G]V$OB_SQLSTAT | 新增列 | 新增列如下
- muti_query_batch_execute_total
- muti_query_batch_execute_delta
- muti_query_total
- muti_query_delta
- full_table_scan_total
- full_table_scan_delta
- error_count_total
- error_count_delta
| CDB_WR_SQLSTAT | 新增列 | 新增列如下
- muti_query_batch_execute_total
- muti_query_batch_execute_delta
- muti_query_total
- muti_query_delta
- full_table_scan_total
- full_table_scan_delta
- error_count_total
- error_count_delta
| DBA_WR_SQLSTAT | 新增列 | 新增列如下
- muti_query_batch_execute_total
- muti_query_batch_execute_delta
- muti_query_total
- muti_query_delta
- full_table_scan_total
- full_table_scan_delta
- error_count_total
- error_count_delta
缺陷修复
- 修复类型为 NULL 添加计划失败的问题。
- 修复 MySQL 租户异常时添加
ob_error_code以检查是否为内部错误的问题。 - 修复租户变量
lower_case_table_names=0下,建索引操作报错 5019 的问题。 - 修复日志流均衡模块的野指针问题。
- 修复查询字符串过长无法显示的问题。
- 修复在 DML 中使用 hint 改变
lock_mode的问题。 - 修复在计算表数据使用量前重置空间使用量的问题。
- 修复内部调用语句的内存动态泄漏问题。
- 修复正则表达式执行错误
U_REGEX_TIME_OUT的问题。 - 修复 OBServer 退出时 ObBatchRpc 单例析构 Core 的问题。
- 修复
connect_by连接中忽略普通 nl 路径的问题。 - 修复添加非空 LOB 后缺失约束的问题。
- 修复
select_into操作符不可重入的问题。 - 修复 PL 调试中将非 UTF-8 LOB 数据编码为十六进制的问题。
- 修复 BEFORE UPDATE trigger 报错 4377 的问题。
- 修复设置系统时区错误的问题。
- 修复数字除法精度与 MySQL 不一致的问题。
- 修复带 maxversion 的表 deleteColumns、deleteFamily 删除漏数据的问题。
- 修复更新参数死锁问题,避免在查询内部 SQL 时持有
ObTenantConfigMgr::rwlock_锁。 - 修复在线收集 Stats 和异步收集抢锁导致插入时间长的问题。
- 修复 show create function 的版本控制问题。
- 修复在范围条件后合并关键部分时出现的旧查询范围的错误问题。
- 修复开源系统视图 Schema 的问题。
- 修复使用默认数据库时无法获取 outline 数据的问题。
- 修复读取失败时的 mvcc 锁问题。
- 修复生成列无法匹配索引的问题。
- 修复建表后对列进行更改报错 maximum key length exceeded 的问题。
- 修复创建隐藏表的回收站时报错的问题。
- 修复对字符类型严格确定性检查的放宽问题。
- 修复 session 因已关闭的 fd 被重用导致误以为 fd 打开状态的问题。
- 修复
information_schema.tables范围提取优化的问题。
- IVF/IVF_PQ vector index optimization with multi-threaded partition rebuild
- In-memory sparse vector index and multi-vector hybrid search with weighted fusion
- Semantic index with integrated Embedding for transparent vectorization
Full changelog
版本信息
| 项目 | 描述 |
| ------ | ------ |
| 发布日期 | 2025-12-03 |
| 版本号 | V4.5.0_CE |
| Commit 号 | 0e8d5ad |
| OBServer RPM 版本号 | oceanbase-ce-4.5.0.0-100000012025112711 |
版本概览
OceanBase V4.5.0 是面向 AI 场景的敏捷迭代版本,对内核 AI 能力进行了大的升级。新版本从构建、查询、DML 和易用性四个维度对 IVF/IVF_PQ 索引进行了全面优化。同时支持了内存稀疏向量索引,提供更加优异的稀疏向量检索性能。新版本的混合搜索能力也得到了大幅增强,支持了多路向量的混合搜索,并支持多路向量查询结果集采用加权方式进行融合重排。同时基于内置的 Embedding 能力,新版本支持用户基于文本列创建语义索引,简化用户使用向量索引的流程。
关键特性说明
内核增强
-
Index Skip Scan 增强
新版本对 Index Skip Scan 功能的性能和稳定性做了提升,即使执行计划误走了 Index Skip Scan,性能也不会有明显的退化。同时将 Index Skip Scan 功能由默认关闭修改为默认打开,优化器在收集统计信息后,在满足规则和代价条件的情况下,可以自动生成 Index Skip Scan 计划。
-
JSON 多值索引支持 Index Merge
通过将 JSON 多值索引接入到 Index Merge 框架,通过对多个索引的扫描结果做合并后回表,可显著减少回表的数量,提升对创建有 JSON 多值索引的 JSON 列进行 member of/json_overlaps/json_contains 三种表达式过滤的性能。
AI 特性增强
-
IVF 向量索引性能优化
新版本从构建、查询、DML 和易用性四个维度对 IVF/IVF_PQ 索引进行了全面升级。构建层面通过 Kmeans 并行化、domain ID merge 框架适配成倍优化索引构建时间;查询层面引入迭代式过滤算法,针对不同过滤率场景智能选择 pre/post filter 策略,确保结果完整性同时提升查询性能;DML 层面通过缓存机制优化增量写入效率;易用性方面新增索引重建参数修改、构建进度监控和语句级 nprobes 参数动态配置功能。
-
内存稀疏向量索引(实验特性)
新版本支持了基于内存的稀疏向量索引,在资源足够的情况下,基于内存的稀疏向量索引的性能要优于基于磁盘的稀疏向量索引,可更好地满足业务对于稀疏向量的检索需求。用户可在创建稀疏向量索引的时候指定
lib=vsag,type=sindi来创建基于内存的稀疏向量索引,同时支持设置剪枝规则,提升查询性能。 -
自动分区重建增强
向量索引自动分区重建可以有效降低向量索引的内存使用开销,但对于分区数多、单分区数据量大的场景下,自动分区重建使用的单线程模型效率低下。为了合理使用集群资源,新版本中异步索引支持了多线程并行构建,且可通过设置配置项
vector_index_optimization_concurrency来指定线程数。 -
Hybrid Search 混合搜索增强
新版本对混合搜索功能做了进一步增强,支持了多路向量+标量条件的混合搜索,并支持多路向量查询结果集采用加权方式进行融合重排。
-
全文索引性能优化
新版本使用自适应 BMM/BMW 裁剪算法对单个全文索引 topK 下压场景性能进一步优化。
-
AI_Prompt 表达式和 Similarity 表达式
新版本新增
AI_Prompt函数,将提示词从“静态文本”升级为“可复用、可参数化”的函数模板形式,用于支持提示词复用以及提示词与数据的动态组合需求,实现高效的提示词工程。AI_COMPLETE表达式可调用文本生成模型,利用提示词完成模型处理数据的任务,例如情感分析、总结等场景。同时,新版本支持了inner_product_similarity、cosine_similarity和l2_similarity三个用于计算向量相似度的表达式,值越接近 1 表示两个向量越相似。 -
语义索引(实验特性)
语义索引(Semantic Index)基于内置的 Embedding 能力,简化了用户使用向量索引的流程,实现了向量概念对用户的透明化:用户可以直接写入需要存储的原始数据,这些原始数据会在 OceanBase 数据库内部自动进行 Embedding,并建立向量索引。用户在检索时,也可以直接使用需要查询的原始数据,OceanBase 数据库会自动进行 Embedding,然后对向量索引进行查询。
性能提升
-
Multi Get 性能优化
通过以下方式对 Multi Get 的性能进行了优化:
-
列存扫描支持使用列存投影。
-
filter利用 skip index 前缀优化。 -
keep order扫描支持blockscan。 -
存储层收集实时统计信息等优化措施。
优化后,回表查询性能,尤其是在数据量较大的场景下,提升较为明显。同时,行列冗余的宽表投影多列(大于 80 列)的性能也有显著优化。此外,在向量化
nest loop join场景下的扫描性能也得到了提升。
-
-
Insert Up 性能优化
在数据局部性较好的前提下,批量回表的主键相对连续,新版本将多个 Range 的点查合并成一个 Range 的范围查询,减少 Range 数量,进一步提升回表性能。同时,新版本对
Insert Up算子主流程进行了重构,优化了冲突检测机制,从而有效提升了整体性能。
兼容性变更
视图变更
新增如下变更:
| 视图 | 变更类型 | 变更说明 |
| -------- | ----------- | ----------- |
| DBA_TABLES | 新增 | MySQL 租户模式下新增 DBA_TABLES 视图。展示当前租户未被回收的普通表、索引及外表等,并同步展示其属性信息,如是否支持自动分区分裂等。 |
| DBA_OB_KV_TTL_TASKS | 新增列 | 新增 scan_index 列,记录 TTL 任务扫描的索引。 |
| DBA_OB_KV_TTL_TASK_HISTORY | 新增列 | 新增 scan_index 列,记录 TTL 任务扫描的索引。 |
| CDB_OB_KV_TTL_TASKS | 新增列 | 新增 scan_index 列,记录 TTL 任务扫描的索引。 |
| CDB_OB_KV_TTL_TASK_HISTORY | 新增列 | 新增 scan_index 列,记录 TTL 任务扫描的索引。 |
| DBA_OB_USERS | 新增列 | 新增 PLUGIN 列,记录密码 HASH 计算使用的 plugin 名称。 |
| CDB_OB_USERS | 新增列 | 新增 PLUGIN 列,记录密码 HASH 计算使用的 plugin 名称。 |
| [G]V$OB_SQL_AUDIT | 新增列 | 新增 TX_TABLE_READ_CNT 列和 OUTROW_LOB_CNT 列,分别用于记录查询读事务状态表的次数和查询过程中读取到 Outrow LOB 的数量。 |
| [G]V$OB_UNITS | 新增列 | 新增 REPLICA_TYPE 列,用于记录副本类型。 |
系统变量变更
| 系统变量 | 修改类型 | 描述 |
| ---- | ---- | ---- |
| plsql_can_transform_sql_to_assign | 变更默认值 | 默认值由 False 调整为 True。 |
配置项变更
新增如下变更:
| 配置项 | 变更类型 | 变更说明 |
| ------ | ------ | ------- |
| default_compress_func | 取值范围变更 | 取值新增枚举值 zstd_1.5.7。 |
| kv_transport_compress_func | 取值范围变更 | 取值新增枚举值 zstd_1.5.7。 |
| log_transport_compress_func | 取值范围变更 | 取值新增枚举值 zstd_1.5.7。 |
| log_storage_compress_func | 取值范围变更 | 取值新增枚举值 zstd_1.5.7。 |
| default_micro_block_format_version | 默认值变更 | 默认值从 1 调整为 2,表示默认启用新 Flat 格式。|
| default_skip_index_level | 新增 | 租户级配置项,用于指定租户创建表时 skip_index_level 的默认值。 |
| ddl_high_thread_score | 新增 | 租户级配置项,用于控制执行 ddl kv merge 的 DAG 线程数。默认值为0。表示使用数据库内部定义的值。 |
| ob_enable_utl_tcp | 新增 | 集群级配置项,用来控制 UTL_TCP 系统包功能是否开启。 |
| vector_index_optimization_concurrency | 新增 | 租户级配置项,用于控制每个向量索引后台优化任务的并发线程数。 |
| model_request_timeout | 新增 | 租户级配置项,用于控制每次访问大模型时的 HTTP 最大超时时间。|
| model_max_retries | 新增 | 租户级配置项,用于控制访问大模型报错后的重试次数。|
语法变更
| 语法 | 变更说明 |
| ------- | ---------- |
| 新增 AI_PROMPT 表达式 | AI_PROMPT 表达式用 JSON OBJECT 形式组织输入的提示词模板和希望填充的数据。
语法格式:AI_PROMPT('<template>', [ , , ... ]);
- template 表示字符串模板,通过形如“{0}”的形式表示占位符。例如,数据{0}和数据{1}的共同之处是什么?
- expr0~exprN 代表参数表达式,必须为 varchar 或者 JSON 类型的表达式。为 varchar 的时候代表是普通的字符串替换,为 JSON 代表是一个复杂类型,例如图片(本期实现只支持 varchar 类型,JSON 是考虑为多模预留)。
- 返回值是一个JSON OBJECT,包含 template 和 args 字段,具体格式参考使用示例。
| 新增 AI_COMPLETE 表达式 | AI_COMPLETE 表达式调用文本生成模型,利用提示词完成模型处理数据的任务,例如:情感分析、总结等场景。prompt 参数允许输入 JSON 类型,用以适配 AI_PROMPT 表达式生成的 PROMPT_OBJECT。本期只适配 args 里纯字符串形式。
语法格式:AI_COMPLETE(model_key, prompt [, model_parameters])
- model_key 表示数据库内预定义的一个模型,该信息由系统表管理,会包含模型的 url、type 等信息。
- prompt 表示用户输入的提示词,文本类型新增 JSON 类型。长度不定,表达式内部判断 varchar 还是 text 类型,如果是 JSON 类型会进一步判断是否是 prompt_object 格式。
- model_parameters 用 JSON 表示大模型服务所提供的大模型可选配置项,如 temperature,top_n 等。
- 返回值是大模型处理后输出的文本,现有的模型输出长度最高 100K 个 token,换算成字符约 400K,因此,返回值类型认为选用 longtext,覆盖所有模型使用。
| 新增创建语义索引语法,包括随表一起创建和建表后创建两种语法 |
- CREATE TABLE t (..., col varchar(xx), VECTOR [index | key] index_name (col) WITH (distance=[inner_product | L2 | cosine], lib=[vsag], type=[hnsw], model=[model_name], dim=[dimension], sync_mode=[immediate | manual | async], sync_interval=[time_interval],...)
- CREATE VECTOR INDEX index_name ON tbl(doc) WITH (distance=[inner_product | L2 | cosine], lib=[vsag], type=[hnsw], model=[model_name], dim=[dimension], sync_mode=[immediate | manual | async], sync_interval=[time_interval],...)
| 使用 semantic_distance 表达式进行语义索引查询 | order by semantic_distance(column_name, 'query_text') [approximate|approx] limit n
使用查询文本 query_text,对 column_name 所在列的语义索引进行向量查询,得到最近似的前 n 行结果。 |
| 使用 semantic_vector_distance 表达式进行混合向量索引查询 | order by semantic_vector_distance(column_name, 'query_vector') [approximate|approx] limit n
使用查询向量 query_vector,对 column_name 所在列的语义索引进行向量查询,得到最近似的前 n 行结果。 |
| 使用 semantic_vector_distance 表达式进行混合向量索引查询 | order by semantic_vector_distance(column_name, 'query_vector') limit n
使用查询向量 query_vector,对 column_name 所在列的语义索引进行查询,得到距离最近的前 n 行的精确结果。 |
周边配套
OceanBase 数据库 V4.5.0_CE 推荐使用的平台工具版本如下:
| 组件 | 版本 | 备注 |
| ---- | ---- | ---- |
| OBProxy | V4.3.5 | - |
| OCP | V4.4.0 | - |
| OBD | V4.0.0 | - |
| OBCDC | V4.5.0 | - |
| OMS | V4.2.11 | 暂不支持 |
升级说明
支持从 V4.4.1_CE 版本平滑升级到 V4.5.0_CE 版本。
- Vector similarity functions (inner_product, cosine, l2)
- IVF_FLAT/IVF_PQ index optimization
- Skip Index for Delete-Insert tables
- Upgrade from earlier versions not supported; new cluster installations only
- Locality change from 2F to 1F
- ODPS Storage API support
- Phrase matching in full-text search
- Session-level private temporary tables in MySQL mode
- Materialized view MLOG auto-management
- Vector index optimization
Distributed execution optimization improves global index performance by 3-5%.
Fixes data inconsistency in rb_to_string expression merge operations
- ODPS Storage API adapter
- SQL keyword-based flow control
- Azure Blob storage support
- Support different UNIT NUM per zone
- Fast column deletion without data reorganization
- GTS standalone mode
- SESSION_ID field in system views now represents Client Session ID instead of Server Session ID
- Secondary partition management
- Standby tenant log truncation
- Log stream rebalancing