alter tenant locality任务卡死

【 使用环境 】测试环境
【 OB or 其他组件 】Observer
【 使用版本 】4.3.5.5
【问题描述】
操作原因: 发现OCP监控中有一个节点监控曲线一直贴地板

日志中有报错:
[2026-03-26 14:53:29.278394] WDIAG [RS] is_sys_ls_leader_ (ob_tenant_info_loader.cpp:274) [4075438][T1002_TenantInf][T1002][Y0-0000000000000000-0-0] [lt=8][errcode=-4719] failed to get palf role(ret=-4719, ret=“OB_LS_NOT_EXIST”)

SYS租户查看select * from CDB_OB_LS_LOCATIONS where tenant_id=1;
±----------±------±-----------±---------±---------±------±---------±------------------------------------------------------+
| TENANT_ID | LS_ID | SVR_IP | SVR_PORT | SQL_PORT | ZONE | ROLE | MEMBER_LIST |
±----------±------±-----------±---------±---------±------±---------±------------------------------------------------------+
| 1 | 1 | xx.xx.xx.44 | 2882 | 2881 | zone1 | LEADER | xx.xx.xx.44:2882:1,xx.xx.xx.45:2882:1,xx.xx.xx.46:2882:1 |
| 1 | 1 | xx.xx.xx.45 | 2882 | 2881 | zone2 | FOLLOWER | NULL |
±----------±------±-----------±---------±---------±------±---------±------------------------------------------------------+

感觉是zone3的xx.46这个机器出了问题, 但是select TENANT_NAME,LOCALITY from DBA_OB_TENANTS where tenant_id = 1; 看上去没问题
±------------±-----------------------------+
| TENANT_NAME | LOCALITY |
±------------±-----------------------------+
| sys | FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3 |
±------------±-----------------------------+

然后就想着把zone3重建一下:
ALTER TENANT sys LOCALITY = ‘FULL{1}@zone1, FULL{1}@zone2
ALTER TENANT sys LOCALITY = ‘FULL{1}@zone1, FULL{1}@zone2, FULL{1}@zone3
结果发现删也删不掉, 加也加不回去
select * from DBA_OB_TENANT_JOBS order by 1;

请问现在该怎么处理?
image

2 个赞

OceanBase 社区已接收您的帖子,正在跟进中。

1 个赞

可以试一下:
– 刷新租户位置信息
alter system reload tenant location;

– 强制触发SYS租户的日志流副本修复
alter system repair ls ls_id=1 tenant_id=1;

– 等待1分钟后,再次查询副本分布
select TENANT_ID, LS_ID, SVR_IP, ZONE, ROLE from CDB_OB_LS_LOCATIONS where tenant_id=1;

1 个赞

学到了新知识

666

alter system reload tenant location
alter system reload tenant sys location
试了一下都语法报错,我版本是4.3.5.5

感谢解答xx问题!对于FULL场景,我的经验是重点关注TENANT配置。

  1. 46这台机器是啥情况? 能否拉起来。还是 已经不存在了??
  2. 仅仅sys 一个租户吗? 其他租户是否还在
  1. 46机器正常,也在集群中,能正常写入
  2. 只变更了sys租户,其他租户正常运行,还没来得及做变更

select * from DBA_OB_TENANT_JOBS order by 1; --这个报错了没??

46的机器资源充足,比如磁盘 和 其他unit资源??

select * from DBA_OB_TENANT_JOBS order by 1
这个就是之前截图里的inprogress + 进度0的状态,进度不动
资源确认充足,基本没负载的