【 OB 4.2.1】
当前集群连接的obproxy集群一开始是基于config server建立的,然后每次我连接集群都需要配置#clusterid
我希望不加#clusterid这个配置,然后删除obproxy集群改成了rslist的建立,但是最终发现还是得加上#clusterid这个配置才能连接到集群。
【 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