obproxy_ob3_clu是OBProxy 集群名
obclient -h192.168.36.77 -P2883 -uroot@proxysys#obproxy_ob3_clu -p’SinoDB#1225’ -A -c
ob3_clu是OB集群名
obclient -h192.168.36.77 -P2883 -uroot@sys#ob3_clu -p’SinoDB#1225’ -A -c
能否麻烦问下,这两种连接的差异? 如果要修改例如proxy_primary_zone_name参数,是不是这两种方式连接的修改,是等效的?
通过ob集群和通过OBProxy集群连接,有什么差别?能否说下什么场景下使用?什么情况下连接效果是一致的等问题?
淇铭
2025 年12 月 4 日 11:38
#4
ODP 有两个特殊的账号:root@proxysys 和 proxyro@sys ,这里 root@proxysys 是 ODP 的管理员账号,proxyro@sys 是 ODP 访问 OceanBase 数据库的账号。这两个账户都支持修改密码,其中 root@proxysys 的密码对应配置项 obproxy_sys_password ,proxyro@sys 的密码对应配置项 observer_sys_password 。
使用 root@sys 用户通过 ODP 代理登录 OceanBase 数据库 这里的sys是租户 proxysys不是个租户
ODP 专有内部命令目前只有 OceanBase 数据库的超级管理员(root@sys)、ODP 的超级管理员(root@proxysys)可以执行,其他用户没有权限调用。
MySQL 兼容内部命令中,只有 ODP 的超级管理员(root@proxysys)可以通过 SHOW PROCESSLIST 命令查看所有集群租户的会话信息,并通过 KILL 命令终止任意一个集群租户的会话;OceanBase 数据库 sys 租户下的用户可以通过 SHOW PROCESSLIST 命令查看当前集群所有租户的会话信息,但只能通过 KILL 命令终止本租户内任意一个会话;其他普通用户只能根据自身权限对相同租户用户下的会话进行操作,默认普通用户只能通过 SHOW PROCESSLIST 命令查看当前用户下的会话信息,且无法看到其所在集群信息。
论坛小助手
2025 年12 月 4 日 11:40
#6
通过 OBProxy 集群连接和直接通过 OB 集群连接的主要区别在于连接管理和路由功能。
连接管理 :
OBProxy : OBProxy 作为一个中间件,可以有效地管理客户端与 OB 集群之间的连接。它可以帮助客户端维护逻辑连接,而实际的物理连接可能分布在多个 OBServer 上。OBProxy 还可以处理超时、机器状态变化、网络状态变化等问题,确保连接的高可用性和稳定性。
OB 集群 : 直接连接 OB 集群时,客户端需要直接管理与 OBServer 之间的物理连接。这可能会导致连接管理更加复杂,特别是在分布式环境中。
路由功能 :
OBProxy : OBProxy 可以根据配置和策略将请求路由到合适的 OBServer 上。例如,可以通过配置实现弱一致性的读取,将读请求路由到只读副本。OBProxy 还支持 LDC 路由,可以根据地理位置或 IDC 将请求路由到最近的 OBServer。
OB 集群 : 直接连接 OB 集群时,客户端需要自己实现路由逻辑,这可能会增加开发和维护的复杂性。
使用场景 :
OBProxy : 适用于需要高可用性、连接管理和路由功能的场景。特别是当客户端需要连接到分布式的 OB 集群,或者需要实现弱一致性读取时,使用 OBProxy 更加合适。
OB 集群 : 适用于简单的应用场景,或者客户端可以直接管理连接和路由的场景。
连接效果一致性 :
在某些情况下,通过 OBProxy 和直接连接 OB 集群的效果是一致的,例如简单的读写操作。但是,当涉及到复杂的路由策略、高可用性管理、弱一致性读取等功能时,OBProxy 会提供更多的优势。
关于 proxy_primary_zone_name 参数的修改:
通过 OBProxy 集群连接时,修改 proxy_primary_zone_name 参数会影响 OBProxy 的路由策略,使得请求优先路由到指定的主区域。
通过 OB 集群连接时,直接修改 OB 集群的配置,不会影响 OBProxy 的路由策略。
因此,这两种方式连接的修改并不是完全等效的,具体取决于你需要实现的功能和管理的需求。
具体信息可参考以下文档:
如何理解逻辑连接
如何路由到只读型副本查询数据
数据库连接和路由概述
ODP 路由功能
基本操作
1 个赞