ob集群删除节点前,手工迁移节点上的 Unit到同一个zone其它server, Unit又飘移回原节点

【 使用环境 】POC环
【 OB or 其他组件 】OB
【 使用版本 】4.3.5.1
【问题描述】老师您好!ob集群删除节点前,为了保障迁移顺利,按官方文档建议进行手工迁移节点上的 Unit到同一个zone其它server,
执行如下命令:
ALTER SYSTEM MIGRATE UNIT = 1019 DESTINATION = ‘xx.xx.xx.2:2882’;
ALTER SYSTEM MIGRATE UNIT = 1020 DESTINATION = ‘xx.xx.xx.4:2882’;
ALTER SYSTEM MIGRATE UNIT = 1021 DESTINATION = ‘xx.xx.xx.3:2882’;

SELECT * FROM oceanbase.DBA_OB_UNIT_JOBS WHERE JOB_TYPE = ‘MIGRATE_UNIT’;
以上命令显示全部“sucess”
语句 SELECT * FROM oceanbase.DBA_OB_UNITS 显示都迁移到新的节点。
但是大概1分钟后 租户的 Unit又飘移回原节点xx.xx.xx.2,xx.xx.xx.3,xx.xx.xx.4

需求是:是否有什么参数能暂时控制租户手工迁移Unit到新节点后 一段时间内不飘移回要删除的节点?以便后续进行删除节点操作,真实场景可能这个要删除的节点上会承载很多租户,此时需要的时间可能更长。
(注:同时发现同一个zone内新增节点 租户也会自动均衡迁移,是否有参数控制均衡的开关,以方便适当时间进行均衡避免影响生产业务?)

官方文档路径:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003378850

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

2 个赞

针对您提到的 Unit 自动迁移问题,这通常涉及到 OceanBase 集群中的负载均衡策略。当您手动将 Unit 迁移到另一个节点后,如果集群检测到原节点有足够的资源来承载该 Unit,可能会自动将其迁回。为了防止这种情况发生,您可以考虑调整以下参数:

  1. ob_enable_balance:用于控制整个集群的负载均衡开关。如果设置为 False,则可以关闭整个集群的自动负载均衡功能。
  2. ob_zone_balance_strategy:用于指定 Zone 内的负载均衡策略。如果您希望关闭同一 Zone 内的自动均衡迁移功能,可以调整这个参数。
  3. ob_unit_move_policy:用于控制 Unit 的迁移策略。您可以调整这个参数来影响 Unit 的迁移行为。

不过,在调整这些参数之前,建议先使用 obdiag 工具进行日志采集,以便更好地了解当前的负载均衡状态和 Unit 迁移的原因。

日志采集场景: unit迁移/缩小 副本不均衡问题

日志采集命令:

obdiag gather scene run --scene=observer.unit_data_imbalance

请运行上述命令,并将生成的日志文件提供给我们,以便我们能够进一步分析 Unit 迁移的具体原因。

为了更好地帮助您解决问题,还需要您提供以下信息:

  1. 您当前使用的 OceanBase 版本是什么?
  2. 您已经尝试了哪些方法来阻止 Unit 自动迁移回原节点?
  3. 您是否观察到任何特定的错误日志或警告信息?
  4. 您是否配置了任何与负载均衡相关的自定义参数?
  5. 您希望达到的具体目标是什么,例如是否完全禁止 Unit 自动迁移,还是仅在某些条件下允许迁移?

谢谢您的配合!

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

3 个赞

顶一下

1 个赞

顶顶顶

把SYS租户的 enable_rebalance先关闭会防止这个迁移之后又飘回来

3 个赞

感谢感谢,测试通过,sys 租户下,用户租户下 分别设置 enable_rebalance =false 可防止租户间,租户内部Unit 之间的自动均衡,待删除节点后 可进行开启