OBProxy问题咨询

【 OB 4.2.1】

当前集群连接的obproxy集群一开始是基于config server建立的,然后每次我连接集群都需要配置#clusterid

我希望不加#clusterid这个配置,然后删除obproxy集群改成了rslist的建立,但是最终发现还是得加上#clusterid这个配置才能连接到集群。

OceanBase 社区已接收您的帖子,正在跟进中。

问题确认:以rslist方式启动的odp(ocp部署),通过odp登陆时不带#clustername会失败,截图如下:

从ocp这个链接串来看,也是带clustername

版本信息:ocp 4.3.0,odp4.2.3,ob4.2.1.7

排查过程:

1.确认odp启动方式

通过默认的 2883 端口连接到 ODP

obclient -hxx.xx.xx.xx -P2883 -uroot@proxysys -pxxxx -Doceanbase -A

show proxyconfig like ‘rootservice_list’; 确认是rslist方式启动odp

2.提供对应obproxy节点的日志 obproxy.log,出现full_username_check on信息

3.确认参数 enable_full_username,发现值为True

show proxyconfig like ‘enable_full_username’;

4.修改enable_full_username为False,至此问题解决

ALTER PROXYCONFIG SET enable_full_username = FALSE;

5.进一步分析,这里参数为什么为True,从日志看obproxy在启动后参数enable_full_username会被设置为True,怀疑ocp部署obproxy会有这个动作,但是本地环境并未复现出来,已联系ocp同学进一步确认,这里有一个小知识obd部署的obproxy参数enable_full_username默认是False。

结论: enable_full_username为True导致通过odp登陆时必须带#clustername,通过ocp部署obproxy导致enable_full_username为True的现象本地环境未复现出来,客户环境为什么会出现这个现象,已联系ocp团队确认,有进展会进一步反馈。

话外:

1.root@proxysys、 root@sys 、proxyro@sys的作用?

root@proxysys:obproxy管理租户

root@sys:集群管理租户

proxyro@sys:obproxy访问ob集群的用户

2.当做了主备切换之后odp能支持自动路由到备库吗?

目前不支持,在做

参考文档:

https://www.oceanbase.com/knowledge-base/oceanbase-database-proxy-1000000000210046?back=kb

https://www.oceanbase.com/knowledge-base/oceanbase-database-proxy-1000000000210027

https://www.oceanbase.com/docs/common-odp-doc-cn-1000000000755605

1 个赞

后续:

ocp团队回复:ocp 启动 obproxy 时默认在obproxy 大于3.2.2 版本会增加此参数