最近在使用 ob 服务的时候经常登录到 obproxy 上,请问 obproxy 是不是只支持一些功能性的命令,不提供数据处理命令啊?登录它一般是用来干什么?
只支持odp的功能命令
看odp的功能
主要用来查询配置项,变更配置项,比如:弱读配置,LDC路由等
具体可以参考:https://www.oceanbase.com/docs/common-odp-doc-cn-1000000003575293
应该不是所有命令都支持
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
租户用户:可查看本集群所有租户会话,但只能终止本租户内的会话。 - 普通用户:仅能查看自己用户的会话。
-
注意:由于负载均衡可能导致请求分发到不同 OBProxy 节点,建议确保
SHOW PROCESSLIST
和KILL
发送到同一 OBProxy 实例。更多信息
-
KILL [CONNECTION \\| QUERY] <id>
终止指定 ID 的连接或查询。必须配合SHOW PROCESSLIST
获取会话 ID 使用。
权限说明来自 命令说明,
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 |
注意事项:
INFO
输出是 Redis 原生命令输出的一个子集;MONITOR
和CLIENT LIST
只监听当前 ODP 节点收到的命令和连接;
坐等答案
可以的
坐等答案