基于OCP重新创建了新的业务集群,然后关联至已经创建好的OBProxy集群,但无法通过OBProxy集群访问数据库

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
基于OCP重新创建了新的业务集群,然后关联至已经创建好的OBProxy集群,所有节点都显示正常运行。目前可以直接连接新集群下的observer,但是获取通过OBProxy连接的连接串,就无法连接了。
报错如下:
ERROR 2002 (HY000): Can’t connect to OceanBase server on ‘192.168.18.130’ (115)

下图是OBProxy集群以及其下的OBProxy节点


目前想通过OBProxy集群,去访问新业务集群的SYS租户,通过界面获取连接串,如下图:


然后通过obclient客户端连接,就返回上面提到的错误了。

直接连接新业务集群的observer节点确实没问题,但是通过OBProxy集群就不行了。

1 个赞

麻烦去proxy节点进入/home/admin/myoceanbase/obproxy/log目录,提取出obproxy.log日志和error日志

error日志是空的呀。

然后obproxy给您截取了 我尝试连接之后的打印输出
obproxy.log (502.9 KB)

obproxy接管集群是否正常。使用root@proxysys#jx_proxy登录试试是否能成功

还是同样的错误呀

接管的集群显示是正常运行的呀

这个集群我是通过OCP的界面完成创建的。整体任务执行过程中,全部成功,没有任何异常!
然后我通过客户端,也是可以直接连到新集群的observer节点的,如图:

obporxy可能有问题,如果方便的话可以铲掉重新搭建一下试试,端口默认使用2883即可

我OBproxy集群下的节点就一个呀,就是130那台机器,而且端口使用的都是默认的。
但是我有一个疑问啊,就是我OBProxy的集群(jx_proxy),他提供的访问地址(IP+端口)
这个地址是我写哪台机器都可以吗? 还是必须是集群下的某一节点的IP,还是需要添加一台空闲的主机?

因为我proxy节点就一个(130),然后集群的访问我也写到了130上,因为2883的端口已经被节点默认占用了,所以我自定义了9999的端口,提供OBProxy的集群用于访问。这样可以吗?

连接串填写 obproxy节点
自定义端口也可以的。目前看使用root@proxysys#jx_proxy登录不上去就说明obproxy存在问题

那这个问题呢? 这个集群的访问地址的IP到底应该怎么去填写呀?规则是怎样的

而且OBProxy那个节点也能连接上,但是连上之后显示的库不对,而且所有库都无法打开。


image

你连的是OBProxy没有数据库的正常。
集群访问地址指什么?
连接业务集群串:obclient -h填写30节点obproxy的ip -uroot@sys#ob集群名 -P9999

不就是创建OBProxy集群的时候,需要填写的访问地址么。


image

这个填写obproxy的节点即可,你使用2883端口试试呢 看你上面连proxy时用的2883

可以看一下你的ob集群设置的白名单

已经解决了。谢谢

怎么解决的可以分享一下

OBProxy集群的访问地址不生效,是因为没有搭建OBProxy集群的负载,虽然在同一台机器,可是9999的端口无法指向proxy节点的2883端口的,所以通过代理集群的访问地址还是无法连接的,我目前是通过直接访问代理集群下的某一代理节点的连接串,即可连接到业务集群的某一租户下。

如果OBProxy集群下后续会部署多个代理节点的话,自行搭建负载即可,至于负载可选的方案就很多了。只要可以负载TCP的连接就行。