---
title: "OceanBase 数据库代理社区版 V4.3.5 - 数据库代理  V4.3.5 | OceanBase 文档中心"
description: OceanBase 数据库代理社区版 V4.3.5 V4.3.5 版本信息 发布时间：2025 年 08 月 15 日 版本号：V4.3.5 RPM 版本号：obproxy-ce-4.3.5.0-3 版本定位 ODP 4.3.5 版本是 ODP 4.3.x 的最新版本，推荐线下业务用于 POC 测试、生产。新增支持 …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*nSAhQbrBXKwAAAAAAAAAAAAADiGDAQ/original) 数据库代理 V 4.3.5

# OceanBase 数据库代理社区版 V4.3.5

更新时间：2026-07-22 16:50:58

[编辑](https://github.com/oceanbase/oceanbase-proxy-doc/edit/V4.3.5/zh-CN/1000.release-notes/120.community-edition-history-release/990.V4.3-ce/950.V4.3.5-ce.md)  

## V4.3.5

### 版本信息

- 发布时间：2025 年 08 月 15 日
 - 版本号：V4.3.5
 - RPM 版本号：obproxy-ce-4.3.5.0-3

### 版本定位

ODP 4.3.5 版本是 ODP 4.3.x 的最新版本，推荐线下业务用于 POC 测试、生产。新增支持 String 类型路由、分区键的列等值关系推导、multi-stmt 事务路由、month 函数路由等功能，增强核心路由能力；支持会话连接池，提升短连接场景的路由性能；细化最大连接数超限时的错误日志，提升诊断易用性。RPC 代理，优化单分区表的判断逻辑，增强 OBKV 场景的路由准确性，新增多个 show 命令展示对象信息，完善监控能力，提升运维易用性。

### 关键特性说明

#### SQL 代理

##### 路由能力完善

- String 类型路由

  OceanBase 数据库新增 String 类型，支持 key、range columns、list columns 分区方式，ODP V4.3.5 同步支持 String 类型的准确路由。
 - 分区键的列等值关系推导

  ODP 解析 SQL 获取路由信息，仅支持 `C1 = xxx`（C1 为分区键）这类分区条件，无法正确解析 `C1 = C2 and C2 = xxx` 等需要推导列等值关系的条件，只能随机路由。ODP V4.3.5 版本，支持分区键的列等值关系推导能力，对 `C1 = C2 and C2 = xxx` 这类语句，也能够正确地获取分区键值并计算出分区，实现准确路由。
 - Multi-stmt 事务路由

  对 Begin/Start transaction 开启的 multi-stmt 事务语句（类似 `begin; xx; xx; commit`），支持按照第一条 SQL 语句路由。
 - Month 函数路由

  ODP V4.3.4 支持了建表语句分区键为函数表达式的场景，能够识别分区表的建表信息，对存在函数表达式的分区键进行解析转换，保证分区计算的准确性。在此基础上，ODP V4.3.5 新增了 month 函数的准确路由。
 - 优化 hint 解析失败后的路由逻辑

  SQL 中有含有诸如 `/*+index(db.lna_n_biz_lock_080 primary) */` 等的复杂 hint 时，ODP 无法正确解析到路由信息，会出现路由不准的问题。ODP V4.3.5 版本优化了对含有复杂 hint SQL 的解析逻辑，能够跳过 hint 继续解析分区信息，实现 SQL 请求的准确路由。

##### 会话连接池

ODP 作为 OceanBase 数据库的高性能代理，在长连接业务场景下，路由性能优异。在短连接场景，性能较差，主要原因有两点：

- ODP 与 OBServer 节点频繁新建、关闭 TCP。
 - ODP 切换 OBServer 节点路由时的 Database、System Vars 同步。

为了提升短连接场景的路由性能，ODP V4.3.5 版本新支持会话级连接池能力，不仅能减少短连接场景下的 accept 等系统调用次数，还可以降低频繁建连的延迟，最终实现性能优化。

##### 易用性提升

OceanBase 数据库可以通过不同配置项和系统变量来控制租户的最大连接数，当最大连接数超限时，ODP 的报错日志都是 `too many connections`，通过这个报错信息，无法准确定位是哪个配置项超限。ODP V4.3.5 在诊断日志 `obproxy_diagnosis.log` 和 `obproxy_error.log` 中对错误日志进行细化、区分，提升诊断易用性。

#### RPC 代理

##### 内部对象运维命令

ODP RPC 代理在处理请求路由时会涉及许多内部缓存，缓存过期或者存储的内容不正确时会造成各种异常稳定性问题，而通过日志排查这些内部对象的方式比较耗时，且不适合在生产环境使用。ODP V4.3.5 将 OBKV 常用的 rpcRequest、tabletGroup、globalIndex、QuerySync、TabletLS、Ctx 信息等对象信息通过 show 命令进行展示，提升运维易用性。

##### 易用性提升

在 Prometheus 端口增加 RPC 连接信息、net_entry 等统计项，完善 ODP RPC 代理的监控能力。

##### 优化单分区表的判断逻辑

ODP 是根据 `part_num = 1` 来判断一张表为非分区表或者单分区表，但无法识别具体是单分区表还是非分区表。分区分裂场景下，默认创建的表都是单分区表，但是 ODP 可能会认为是非分区表。非分区表和单分区表的 `tablet_id` 是不同的，对于 OBKV 场景，如果没有填充合适的 `tablet_id`（非分区表默认为 `0`），OceanBase 数据库会报错。ODP V4.3.5 对单分区表的判断逻辑进行优化，在单分区表被判定表为非分区表时，根据 OceanBase 数据库返回的 OB_SCHEMA_ERROR 信息进行重试，改为按照单分区表进行路由。

### 兼容性变更

#### 运维命令变更

| 运维命令 | 变更类型 | 变更说明 |
| --- | --- | --- |
| show proxyroute partition | 新增 | 展示 Partition 的相关信息，支持手动清理。 |
| show proxyroute globalindex | 新增 | 展示 ODP 中的 OBKV 全局索引信息，支持手动清理。 |
| show proxyroute tablegroup | 新增 | 展示多列族请求的相关信息，支持手动清理。 |
| show proxyroute queryasync | 新增 | 展示 ODP 中 OBKV 异步查询的相关信息，支持手动清理。 |
| show proxyroute tabletls [tablet_to_ls_num] | 新增 | 展示 ls_id 信息，目前仅展示支持 LSOp 请求，支持手动清理。`tablet_to_ls_num` 用于设置展示的数据数量 |
| show proxyroute rpcctx | 新增 | 展示 ODP 中通过 RPC 端口登录的用户信息，不支持手动清理。可通过该命令验证 ODP 对登录用户是否支持分布式能力。 |
| show proxysm rpc [sm_id] | 新增 | 展示 ODP 中当前还未被释放的 ObRpcRequestSM 所处的状态，支持通过配置 `sm_id` 展示指定 ObRpcRequestSM 所处的状态。ObRpcRequestSM 在执行完请求后就会被释放。   #### 说明    需将配置项 `rpc_enable_requestsm_info` 设置为 `True` 才可查询到信息，否则查询结果将为空。 |
| show proxyrpc thread | 新增 | 展示当前线程处理的请求情况。 |
| show proxyrpc requeststat [request_type] | 新增 | 展示不同线程当前处理的各个请求的状态，默认展示所有请求。支持通过配置 `request_type` 追踪单个类型的请求所处的状态。 |
| show globalsession | 新增 | 展示会话连接池的会话统计信息。 |
| show globalsession attribute [all \| '{db_key}'] | 新增 | 展示会话连接池中会话的详细信息，支持通过配置 `all` 或 `db_key` 查询所有或指定租户的会话信息。 |
| kill globalsession 'dbkey' [ss_id] | 新增 | 终止会话连接池中的会话。 |

#### 配置项变更

| 配置项 | 变更类型 | 变更说明 |
| --- | --- | --- |
| connection_pool_mode | 新增 | 用于控制是否启用连接池功能，目前仅支持配置启用会话级连接池。 |
| session_pool_idle_timeout | 新增 | 用于设置会话空闲超时时间，即会话被放回连接池后可以保留的最大时长。 |
| session_pool_reset_interval | 新增 | 用于设置向连接池中未重置的会话发送 `COM_RESET_CONNECTION` 的时间间隔。重置完成后，ODP 不会再向已重置过的会话发送 `COM_RESET_CONNECTION`。 |
| session_pool_stat_log_interval | 新增 | 用于设置会话连接池统计日志时间间隔。 |
| rpc_enable_requestsm_info | 新增 | 用于控制是否打印 RPC 请求信息。 |

### 支持的 OceanBase 数据库版本

支持 OceanBase 数据库 4.x 和 3.x 以及更低版本。根据使用的 OceanBase 数据库版本不同，对应推荐如下：

- 当 OceanBase 数据库为 3.x 版本及更低版本时，建议使用 ODP 3.x 版本。
 - 当 OceanBase 数据库为 4.x 版本时，推荐使用 ODP V4.3.5。

### 缺陷修复

- 修复 ODP 处理 OBServer 节点回包时遇到内存不足的异常，触发连接清理导致的 core 问题。
 - 修复数据库删表重建同名不同分区类型表后，插入数据报 `-4002` 错误的问题。
 - 修复 SQLMonitorInfo 模块存在内存泄露的问题。
 - 修复 Range 分区表，改变分区结构后查询报错 `4723` 的问题。
 - 修复 OBI 实例 DROP 后，下游请求的长连接未释放的问题。
 - 修复 ODP 热升级失败的问题。
 - 修复指定 Zone 路由场景下，切换指定 Zone 时，因租户无流量，缓存未更新，导致路由不到新 Zone 的问题。
 - 修复只读地址指定按副本路由，对指定的 Zone 进行机器替换后，新上线机器被拉黑无法洗白的问题。
 - 修复通过 LSOP 构建 batch tableQuery 的场景下，获取全部的列，并且拆解到多个 LSOP 请求下发到不同的日志流场景时，getOperationRow 报错问题。
 - 修复 go 客户端，通过 ODP 连接时，TestPrimaryAndGlobalIndexNoPartition 查询数据报 `-4016` 的问题。
 - 修复 OB_RPC_TABLE_IGNORE_FIELD 内存使用过大的问题。
 - 修复 OBServer 节点出现异常无法返回结果时，ODP 内存分配受限无法读取到后端结果，导致分区子请求的请求无法被清理，进而导致请求占用内存无法被回收的问题。
 - 修复二合一写一下，OBServer 节点回包不符合规范时，ODP 未拦截异常结果导致的 core 问题。
 - 修复 OceanBase 2.0 协议下，ODP 内存分配失败后，协议解析失败误用 MySQL 协议，导致的 `-4103` 报错问题。
 - 修复建连白名单校验失败时，诊断日志未及时记录的问题。
 - 修复分区分裂场景下，非分区表分裂为分区表后，ODP 识别表类型不准导致的 `-4002` 报错问题。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
