【 使用环境 】测试环境
【 OB or 其他组件 】Ob4.x
【 使用版本 】4.x
【问题描述】
集群安装完成后,并且导入数据了,但是由于某些原因,需要修改掉端口,从2881 和2882换成其他的端口,
我试了下重启集群时重新指定-P 和-p,然后一直处于init 状态,也试了alter system 修改完rpc_port 和mysql_port 后,再重启的时候指定-P 和-p 也会一直处于init 状态
这个可以支持修改吗?或者说类似于单节点实例,里面有数据了,我想换端口只能通过备份恢复或者迁移的方式吗?
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
3 个赞
论坛小助手
#3
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base
推荐使用 obdiag 工具进行日志采集,并且将采集到的日志提供给我们以便确认问题所在。通过采集集群基础信息,我们可以更好地了解 Observer 集群在修改端口后一直处于 init 状态的原因。
另外,为了确定具体的问题,在此需要您提供一些信息:
- 您是否按照官方文档的步骤正确地修改了 svr_port 和 mysql_port?
- 修改端口时,是否对所有节点都进行了相同的配置更改?
- 在修改端口之前,是否有对集群进行过完整的备份操作?
- 当前集群的版本号是多少?
- 是否有查看 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 命令,就会删除原有集群,重新部署,就相当于把集群中的数据删除了,对测试或生产环境不合适
1 个赞
好像不行,重启也是会处于init 状态,可能不支持修改吧
是的,目前测试下来是这样的,所以在想除了迁移数据外,还有其他方案可以替代的不?
论坛小助手
#11
根据文档库中的信息,OceanBase 社区版在集群安装完成后,直接修改 svr_port
和 mysql_port
并非官方支持的操作。以下是对您问题的详细分析和可能的解决方案:
1. 为什么修改端口后会一直处于 init
状态?
- OceanBase 的端口配置(如
svr_port
和 mysql_port
)在集群初始化时被固化到元数据中,后续直接修改这些端口可能会导致 Observer 节点无法正确加载元数据,从而一直处于 init
状态。
- 如果通过
alter system
修改端口或重启时重新指定 -P
和 -p
参数,Observer 节点可能无法与集群其他节点正常通信,进而导致初始化失败。
2. 目前可行的解决方案
根据您的描述,除了迁移数据外,可以尝试以下替代方案:
方案 1:使用 OBProxy 转发端口
方案 2:重建集群并恢复数据
- 如果必须更改 Observer 的端口,建议通过备份恢复的方式重建集群:
- 使用 OCP 或 obd 工具对现有集群进行全量备份。
- 在新的端口配置下重新部署集群。
- 将备份数据恢复到新集群中。
- 注意事项:
- 确保备份过程中集群处于稳定状态。
- 恢复数据时需要验证数据完整性。
方案 3:联系技术支持
- 如果上述方案均不可行,您可以联系 OceanBase 技术支持团队,获取更专业的指导。技术支持团队可能提供一些内部工具或方法来帮助您完成端口修改。
3. 总结
直接修改 Observer 的 svr_port
和 mysql_port
不被官方支持,可能导致集群异常。推荐使用 OBProxy 转发端口作为临时解决方案,或者通过备份恢复的方式重建集群以实现端口变更。
如果您有更多需求或疑问,请随时补充说明!
更多信息请查看:
- ODP 配置管理
- 更改归档目的端
- 暂停归档
- Switchover 或 Failover 相关问题
- 系统内存不足/泄漏
- 停止备份
- 更改备份目的端
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)