OceanBase 的 SQL 口
国产分布式数据库 OceanBase 的 OBServer 默认 SQL 端口:应用既可直连 2881,也可经 OBProxy 接入。配套的 2882 用于 OBServer 之间的 RPC,生产环境的标准姿势是应用连 OBProxy,2881 更多用于运维、巡检与排障。
基本信息
| 服务 | OceanBase OBServer SQL |
|---|---|
| 协议 | TCP(MySQL 方言) |
| 默认端口 | 2881(RPC 2882、OBProxy 2883) |
| 接入方式 | 直连 observer 或经 OBProxy |
| 暴露面 | 仅应用与运维网段 |
典型使用场景
- 运维巡检:直连 observer 查看节点与租户状态
- 排障:确认某个 observer 是否正常提供服务
- 扩缩容与迁移时逐个节点核对
- 数据校验:在单个节点上执行只读查询
- 应急:OBProxy 异常时临时直连观察
连接与节点核对
连接与节点核对
mysql -hobserver01 -P2881 -uroot@sys -p -e "SELECT svr_ip, status FROM oceanbase.DBA_OB_SERVERS"
ss -lntp | grep 288
# 应用侧通常连 OBProxy:
# mysql -hobproxy-vip -P2883 -uapp@tenant -p排障与核对
| 检查项 | 做法 | 异常表现 |
|---|---|---|
| 节点状态 | 查询 DBA_OB_SERVERS 的 status | 节点处于异常状态:需下线或修复 |
| 端口监听 | ss -lntp | grep 288 | 2881/2882 缺失:observer 未起或异常 |
| 租户资源 | 租户视图中的资源单元 | 资源不足:租户需扩容或存在合并异常 |
| 连接来源 | 应用侧连接的目标端口 | 直连 2881:绕过负载均衡与故障切换 |
直连 2881 会绕过 OBProxy 的路由与故障切换:平时看不出问题,等到节点故障或扩容时连接会卡在单点,属于典型「上线正常、故障放大」的隐患。应用侧应统一连 OBProxy 的 2883。
系统租户与业务租户
2881 上既能连系统租户也能连业务租户,用 root@sys 执行查看类命令是运维常规操作,但这个账号权限极高,绝不能配进业务应用。业务连接应使用普通租户账号,并按最小权限授权。
2881、2882、2883 职责不同:2881 是 SQL 入口、2882 是节点间 RPC、2883 是 OBProxy 入口。防火墙放通要按调用方向分别设计,把 2882 暴露到应用网段属于多余的面。
业务应用直连 2881:故障切换与负载均衡同时失效,节点故障时影响面被放大。
巡检发现节点状态与预期不符时,先确认是否有正在进行的合并或扩缩容操作,避免把计划内变更当成故障处置。
生产巡检建议固化成脚本,手工执行时容易漏查租户视图与资源单元,问题往往就藏在这些看不到的地方。