Observer 可以改svr_port 和mysql_port 吗?

【 使用环境 】测试环境
【 OB or 其他组件 】Ob4.x
【 使用版本 】4.x
【问题描述】

集群安装完成后,并且导入数据了,但是由于某些原因,需要修改掉端口,从2881 和2882换成其他的端口,

我试了下重启集群时重新指定-P 和-p,然后一直处于init 状态,也试了alter system 修改完rpc_port 和mysql_port 后,再重启的时候指定-P 和-p 也会一直处于init 状态

这个可以支持修改吗?或者说类似于单节点实例,里面有数据了,我想换端口只能通过备份恢复或者迁移的方式吗?

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

3 个赞

日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

推荐使用 obdiag 工具进行日志采集,并且将采集到的日志提供给我们以便确认问题所在。通过采集集群基础信息,我们可以更好地了解 Observer 集群在修改端口后一直处于 init 状态的原因。

另外,为了确定具体的问题,在此需要您提供一些信息:

  1. 您是否按照官方文档的步骤正确地修改了 svr_port 和 mysql_port?
  2. 修改端口时,是否对所有节点都进行了相同的配置更改?
  3. 在修改端口之前,是否有对集群进行过完整的备份操作?
  4. 当前集群的版本号是多少?
  5. 是否有查看 observer.log 日志文件以获取更多关于 init 状态的详细信息?如果有,请简要描述日志中的异常内容。

附上敏捷诊断工具 obdiag 使用帮助链接

2 个赞

OceanBase 当前版本(包括 4.x)不支持直接修改已存在数据实例的 observer 端口后继续使用数据目录,即使你通过 -P 和 -p 重启或者 alter system 修改也会失败或导致 observer 一直处于 INIT 状态。

1 个赞

理论上可以修改,但是可能会面临重启库的风险吧

经测试,srv_port 与mysql_port 初始化后,不能修改。通过obd cluster edit-config demo 修改端口,修改后需要执行obd cluster redeploy 命令,就会删除原有集群,重新部署,就相当于把集群中的数据删除了,对测试或生产环境不合适