obproxy 是不是只支持部分命令?

最近在使用 ob 服务的时候经常登录到 obproxy 上,请问 obproxy 是不是只支持一些功能性的命令,不提供数据处理命令啊?登录它一般是用来干什么?

7 个赞

只支持odp的功能命令

3 个赞

看odp的功能

1 个赞

主要用来查询配置项,变更配置项,比如:弱读配置,LDC路由等
具体可以参考:https://www.oceanbase.com/docs/common-odp-doc-cn-1000000003575293

2 个赞

应该不是所有命令都支持

1 个赞

obproxy 支持的命令详解

OceanBase 的 OBProxy(也称为 ODP,OceanBase Database Proxy)作为数据库访问的代理层,支持多种类型的命令,主要包括以下四类:

一、运维管理命令(操作系统级)

这类命令用于对 OBProxy 进程本身进行生命周期管理,通常在部署或故障处理时使用。

命令操作 说明
启动 OBProxy 通过命令行启动单个 obproxy 进程。具体参见 启动 OBProxy
停止 OBProxy 终止正在运行的 obproxy 进程。详细步骤请参考 停止 OBProxy
重启 OBProxy 当出现异常时,可通过先停止再启动的方式重启进程。详见 重启 OBProxy
升级 OBProxy 支持集群内单个或全部节点的版本升级。参考 升级 OBProxy

这些操作也可通过 OCP(OceanBase Cloud Platform)图形化界面完成。

二、MySQL 兼容内部管理命令

OBProxy 兼容部分 MySQL 协议中的管理命令,主要用于查看和控制连接会话。

支持的主要命令:

  • SHOW PROCESSLIST
    显示当前客户端与 OBProxy 之间的连接会话信息。
    • root@proxysys:可查看所有租户的会话。
    • sys 租户用户:可查看本集群所有租户会话,但只能终止本租户内的会话。
    • 普通用户:仅能查看自己用户的会话。

:warning: 注意:由于负载均衡可能导致请求分发到不同 OBProxy 节点,建议确保 SHOW PROCESSLISTKILL 发送到同一 OBProxy 实例。更多信息

  • KILL [CONNECTION \\| QUERY] <id>
    终止指定 ID 的连接或查询。必须配合 SHOW PROCESSLIST 获取会话 ID 使用。

:white_check_mark: 权限说明来自 命令说明root@proxysys 拥有最高权限。

此外,root@proxysys 用户可通过标准 MySQL 驱动(如 Java JDBC)执行配置管理操作,因为其操作完全兼容 MySQL 协议的 COM_QUERY 字段。详见 ODP 配置管理 - 驱动支持

三、ODP 专有内部命令

此类命令为 OBProxy 特有的管理指令,目前仅限以下超级管理员账户执行:

  • OceanBase 数据库超级管理员:root@sys
  • OBProxy 超级管理员:root@proxysys

其他用户无权调用。若输入格式错误(如 show proxysession ??),系统将返回错误码:

  • ERROR 4081 (HY000): Unknown result —— 内部解析失败
  • ERROR 5010 (21000): Unknown operator —— 命令识别不全或格式错误

更多细节参见 命令说明

四、支持的 Redis 协议命令(OBKV-Redis 模式)

从 V4.3.2 版本起,OBProxy 支持 OBKV-Redis 协议,允许以 Redis 客户端方式访问 OceanBase 的 Key-Value 存储功能。以下是支持的主要 Redis 命令类别:

1. 键管理命令

命令 功能 格式
TYPE 获取给定键的数据类型 TYPE key [value | member]
DEL 删除一个或多个 key DEL key [key …]
EXISTS 检查一个或多个 key 是否存在 EXISTS key [key …]
TTL 查看 key 的剩余生存时间 TTL key [key ...]

2. 列表相关命令

命令 功能 格式
LPUSH / RPUSH 向列表头部/尾部插入元素 LPUSH key value [value ...]
LPOP / RPOP 弹出并返回首/尾元素 LPOP key
LINDEX 获取指定索引位置的元素 LINDEX key index
LRANGE 返回指定范围内的元素 LRANGE key start stop
LSET, LTRIM, LREM, LINSERT 修改、修剪、删除、插入元素 见原始文档

3. 服务器命令

命令 功能 格式
PING 检测服务器是否存活 PING
ECHO 返回传入的消息 ECHO message
QUIT 关闭连接 QUIT
SELECT 切换数据库 SELECT db
AUTH 鉴权登录 AUTH [password]

4. 客户端命令(自 V4.3.3 起支持)

命令 功能 格式
CLIENT LIST 显示当前所有客户端连接 CLIENT LIST
CLIENT ID 显示当前连接的 cs_id CLIENT ID
CLIENT INFO 显示当前连接信息 CLIENT INFO
CLIENT SETNAME / GETNAME 设置/获取连接名称 CLIENT SETNAME name
CLIENT SETINFO LIB-NAME/LIB-VER 设置客户端库信息 CLIENT SETINFO LIB-NAME jedis
INFO 显示 ODP 相关信息(Redis INFO 子集) INFO
MONITOR 实时显示接收到的所有 Redis 指令 MONITOR

:pushpin: 注意事项:

  • INFO 输出是 Redis 原生命令输出的一个子集;
  • MONITORCLIENT LIST 只监听当前 ODP 节点收到的命令和连接;
2 个赞

坐等答案

可以的

坐等答案