怎样不重启集群添加observer?

【 使用环境 】测试环境 anolis 8.9
【 OB or 其他组件 】ocp-all-in-one-4.3.2-20241012145836.el7.x86_64.tar.gz
oceanbase-ce-libs-4.2.1.8-108000022024072217.el7.x86_64.rpm
oceanbase-ce-4.2.1.8-108000022024072217.el7.x86_64.rpm
【 使用版本 】
【问题描述】我想添加observer到集群,但不重启集群
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

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

我尝试添加新的observer到集群。根据文档https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000218350尝试执行命令:

obclient -h172.17.202.235 -P2881 -uroot@sys -ppassword -A

obclient [(none)]> USE oceanbase;
Database changed
obclient [oceanbase]> ALTER SYSTEM ADD SERVER '172.17.202.238:2882' ZONE 'zone1';
ERROR 1235 (0A000): Not supported feature or function

172.17.202.238:2882是默认的RPC端口,telnet可以通。是不是登录的方式有问题?是否需要USE oceanbase?

我还尝试了通过obd命令添加observer,可以添加,期间数据库会断开几分钟,生产环境无法承受。

obd cluster edit-config <clustername>
obd cluster redeploy <clustername>

根据文档库中的信息,您可以不重启集群来添加 OBServer 节点。以下是具体步骤:

通过 OCP 添加 OBServer 节点

  1. 登录 OCP

    • 打开浏览器,访问 OCP 的管理界面并登录。
  2. 进入集群管理页面

    • 在左侧导航栏单击 集群,系统默认进入 集群列表 页签。
  3. 选择待操作的集群

    • 集群列表 中选择待操作的集群并单击其集群名。
  4. 进入集群概览页面

    • 进入集群 概览 页面的 Zone 列表 区域。
  5. 选择需要添加 OBServer 节点的 Zone

    • 选择一个需要添加 OBServer 节点的 Zone,在对应的 操作 列中,单击 添加 OBServer
  6. 配置 OBServer 信息

    • OBServer 信息 区域,选择机型和 OBServer 节点所在的主机,并配置 OBServer 启动参数。
      • 默认只添加一个 OBServer 节点,如果需要添加多个 OBServer 节点,您可以在下方单击 新增 OBServer 按钮。
      • 关于 OBServer 启动参数的详情说明,可参见 OceanBase 配置项
  7. 完成添加

    • 完成后,单击 确定

注意事项

  • 主机选择:仅可选择匹配当前集群硬件架构的主机。
  • 磁盘配置:生产环境下,OceanBase 数据库建议 OBServer 的日志盘空间为主机内存空间的三倍以及以上;同时,为了避免出现性能问题,不建议数据目录和日志目录挂载在同一块磁盘上。

通过 obclient 添加 OBServer 节点

根据您提供的信息,您在使用 obclient 添加 OBServer 节点时遇到了错误 ERROR 1235 (0A000): Not supported feature or function。这可能是由于您使用的 OceanBase 版本不支持该功能。建议您检查当前使用的 OceanBase 版本是否支持 ALTER SYSTEM ADD SERVER 命令。

通过 obd 添加 OBServer 节点

您提到通过 obd 命令添加 OBServer 节点时,数据库会断开几分钟。这是因为在重新部署集群时,obd 会重启集群中的部分服务,导致短暂的中断。为了减少中断时间,您可以尝试以下步骤:

  1. 编辑集群配置

    obd cluster edit-config <clustername>
    
  2. 添加新的 OBServer 节点

    • 在配置文件中添加新的 OBServer 节点信息,例如:
      servers:
      - 172.17.202.238
      
  3. 重新部署集群

    obd cluster redeploy <clustername>
    

总结

  • 推荐使用 OCP 添加 OBServer 节点,因为 OCP 提供了图形化界面,操作更加直观和方便。
  • 如果必须使用 obclientobd,请确保使用的 OceanBase 版本支持相关功能,并尽量减少重新部署时的中断时间。

希望这些信息对您有所帮助!如果还有其他问题,请随时联系 OceanBase 的人工答疑以获取更多帮助。

更多信息请查看:

  1. ob_mem_assigned_percent_over_threshold OB 已经分配给租户的内存占比超限
  2. 告警预案处理
  3. ob_cluster_exists_inactive_server OB 集群存在不工作 OBServer 节点
  4. 添加 OBServer 节点
  5. OBProxy 常见问题
  6. os_observer_core_dump OBserver Core Dump
  7. OCP V4.0.2
  8. 4000 ~ 4499
  9. ob_error
  10. 清理旧集群
  11. 0001 ~ 3999
  12. 使用 OBD 部署 OBAgent


这个提前启动需添加的节点了么

obd那种方法你应该是使用错误了,redeploy是重新部署集群! 生产不要进行该操作

https://www.oceanbase.com/docs/community-obd-cn-1000000001477803

这个是obd官方的扩容节点文档。建议参考进行测试一下