【 使用环境 】生产环境
【 OB or 其他组件 】OceanBase(observer / RootService 巡检)
【 使用版本 】4.5.0.0_100000012025112711-0e8d5ad012baf0953b2032a35a88bdf8886e9a7a(Nov 27 2025 build)
【问题描述】
某 user 租户的系统视图 V$OB_SESS_TIME_MODEL / GV$OB_SESS_TIME_MODEL 无法查询,报 ERROR 1356: references invalid table(s);同时 RootService 巡检(root inspection)持续失败,observer 日志反复刷:
EDIAG [RS] check_sys_view_ (ob_root_inspection.cpp:1622) [errcode=-4029] check sys view: expand failed tenant_id=1008, table_name=V$OB_SESS_TIME_MODELERROR [RS] check_sys_table_schemas (ob_root_inspection.cpp:1347) [errcode=-4754] root inspection is not passed, msg="inner tables are unmatched", tenant_id=1008ERROR [RS] check_error_table_ids_ [RSInspectTask] table_ids=[21492]
sys 租户查同一视图完全正常,仅该 user 租户异常。 业务读写不受影响,但巡检不通过会持续告警。
【复现路径】
- 集群 3 节点(zone1/2/3),2026-05-08 部署,版本如上,部署后从未升级(3 节点
build_version一致、observer 自部署起未重启)。 - 2026-05-11 18:33
create tenant marketing(MySQL 模式, USER 租户, id=1008),为集群唯一 user 租户。 - 建租户后该视图即损坏,疑似 建租户时
GV$OB_SESS_TIME_MODELresolve 失败/不完整。
我方已完成的排查(排除法,供贵方跳过重复定位):
| # | 验证 | 结果 | 排除 |
|---|---|---|---|
| 1 | 报警租户类型 |
marketing = USER 租户(非 meta) |
— |
| 2 | 集群是否升级过 | 3 节点同 build、observer 未重启 |
|
| 3 | 同视图在 sys 租户 | 正常返回 |
|
| 4 | 视图定义 sys(1) vs marketing(1008) |
__all_virtual_table.view_definition 逐字一致
|
|
| 5 | 上游 GV$SESSTAT、V$STATNAME 在 marketing 单独查 |
均正常 |
|
→ 结论:仅 marketing 租户的 GV$OB_SESS_TIME_MODEL(table_id 21491) 视图解析态/依赖记录损坏,定义和上游都正常。
咨询点:
- 是否为 4.5.0.0
create tenant初始化系统视图的已知问题? - 如何重建该租户的系统视图(内部命令?重启租户能否触发重新 resolve?是否需补丁版本)?
- 是否影响后续在该集群新建 user 租户(会不会每个新租户都中招)?
【附件及日志】
obdiag 收集 RootService 巡检报错时段日志(按贵方需要,命令按 obdiag 实际版本调整):
[2026-06-30 15:07:32.553534] INFO [RS] check_sys_table_schema_ (ob_root_inspection.cpp:1227) [14197][RSInspectTask][T0][Y0-0000000000000000-0-0] [lt=22] async check sys table schema for tenant(ret=0, ret="OB_SUCCESS", tenant_leader="10.104.16.190:2882", arg={tenant_id:1008, data_current_version:{version_str:"4.5.0.0", version_val:17180196864}, rs_addr:"10.104.16.190:2882", rs_epoch_id:2})
[2026-06-30 15:07:33.053253] WDIAG [RS] check_sys_view_ (ob_root_inspection.cpp:1616) [3205094][T1008_L0_G0][T1008][YB420A6810BE-000651D9FAEFE934-0-0] [lt=12][errcode=-5231] execute sql failed(ret=-5231, ret="OB_ERR_VIEW_INVALID", tenant_id=1008, table_name=V$OB_SESS_TIME_MODEL, sql=SELECT FIELD FROM `oceanbase`.`__tenant_virtual_table_column` WHERE TABLE_ID = 21492)
[2026-06-30 15:07:33.053263] EDIAG [RS] check_sys_view_ (ob_root_inspection.cpp:1622) [3205094][T1008_L0_G0][T1008][YB420A6810BE-000651D9FAEFE934-0-0] [lt=18][errcode=-4029] check sys view: expand failed(ret=-4029, ret="OB_SCHEMA_ERROR", tenant_id=1008, table_name=V$OB_SESS_TIME_MODEL) BACKTRACE:0xaeb6c22 0xae6d30d 0xaeb7923 0xaeb72f7 0xaeb7251 0xaeb715d 0x10f676a6 0x10f61c43 0x10f5d27a 0x10f5f45c 0x13798cac 0xb2a86f4 0xa8cb9a8 0xa8b873a 0x13e8a542 0x285d39f9 0x7f98bfc8a0ea 0x7f98bfd0f150
[2026-06-30 15:07:33.227999] EDIAG [RS] check_sys_table_schemas (ob_root_inspection.cpp:1346) [3205094][T1008_L0_G0][T1008][YB420A6810BE-000651D9FAEFE934-0-0] [lt=0][errcode=0] check sys table schema failed(ret=0, ret="OB_SUCCESS", tenant_id=1008, error_table_ids=[21492]) BACKTRACE:0xaeb6c22 0xae6d30d 0xaeb7923 0xaeb72f7 0xaeb7251 0xaeb715d 0x10f60ba8 0x10f5d57b 0x10f5f45c 0x13798cac 0xb2a86f4 0xa8cb9a8 0xa8b873a 0x13e8a542 0x285d39f9 0x7f98bfc8a0ea 0x7f98bfd0f150
[2026-06-30 15:07:33.519102] EDIAG [RS] check_error_table_ids_ (ob_root_inspection.cpp:1104) [14197][RSInspectTask][T0][Y0-0000000000000000-0-0] [lt=20][errcode=-4029] check sys table schema failed(ret=-4029, ret="OB_SCHEMA_ERROR", tenant_id=1008, table_ids=[21492]) BACKTRACE:0xaeb6c22 0xae6d30d 0xaeb7923 0xaeb72f7 0xaeb7251 0xaeb715d 0x10f5c314 0x10f5bd95 0x10f5af0a 0x10f4adeb 0x10f4e6fe 0x10f47bb5 0x285be24f 0x285cb5f2 0x285bdf27 0x285bd8e1 0x285d3b0d 0x7f98bfc8a0ea 0x7f98bfd0f150
[2026-06-30 15:07:33.519146] WDIAG [RS] check_sys_table_schemas_ (ob_root_inspection.cpp:1078) [14197][RSInspectTask][T0][Y0-0000000000000000-0-0] [lt=1][errcode=-4029] failed to check sys table schemas(ret=-4029, ret="OB_SCHEMA_ERROR", tenant_ids=[1, 1007, 1008])
[2026-06-30 15:07:33.529032] INFO [RS] process (ob_root_inspection.cpp:382) [14197][RSInspectTask][T0][Y0-0000000000000000-0-0] [lt=0] inspection task succ(i=2, task="tenant_checker")
关键诊断 SQL 输出(已附):
-- 租户:marketing = USER, 2026-05-11 建DBA_OB_TENANTS: 1008 | marketing | USER | NORMAL | MYSQL | 2026-05-11 18:33:34
-- 版本(3 节点一致,未升级)__all_server: 4.5.0.0_100000012025112711 (Nov 27 2025) ×3, start_service_time≈2026-05-08
-- 现象对照[sys 租户] SELECT * FROM oceanbase.GV$OB_SESS_TIME_MODEL LIMIT 1; -- ✅ 正常返回[marketing 租户] SELECT * FROM oceanbase.GV$OB_SESS_TIME_MODEL LIMIT 1; -- ❌ ERROR 1356 references invalid
-- 定义一致(排除定义错)__all_virtual_table WHERE table_id IN(21491,21492) AND tenant_id IN(1,1008): 两租户 view_definition 逐字相同
-- 上游正常(排除上游缺失,均在 marketing 租户执行)SELECT * FROM oceanbase.GV$SESSTAT LIMIT 1; -- ✅SELECT * FROM oceanbase.V$STATNAME LIMIT 1; -- ✅