首批通过分布式安全可靠测评,为关键业务系统打造
升级 OBServer 时预检查报错 tenant unit not exist but partition exist
更新时间:2026-07-02 15:41
升级 OBServer 时预检查报错 tenant unit not exist but partition exist。
详细说明
预检查的脚本位置是 OBServer 服务器 /home/admin/oceanbase/etc/upgrade_checker.py。
查看预检查发现逻辑如下。
# 检查存在租户 partition,但是不存在 unit 的 OBServer
def check_tenant_resource(query_cur):
(desc, res_unit) = query_cur.exec_query("""select tenant_id, svr_ip, svr_port from __all_virtual_partition_info where (tenant_id
, svr_ip, svr_port) not in (select tenant_id, svr_ip, svr_port from __all_unit, __all_resource_pool where __all_unit.resource_pool
_id = __all_resource_pool.resource_pool_id group by tenant_id, svr_ip, svr_port) group by tenant_id, svr_ip, svr_port""")
for line in res_unit:
raise MyError('{0} tenant unit not exist but partition exist'.format(line))
logging.info("check tenant resource success")
可以使用里面的 SQL 进行检查看是哪台 OBServer 有问题,然后在这个 OBServer 上执行以下任务。
ALTER SYSTEM RUN JOB 'check_partition_table' server='xxx.xxx.xxx.xxx';
适用版本
OceanBase 数据库 V3.x 版本。