首批通过分布式安全可靠测评,为关键业务系统打造
Oracle 租户的 sys db 内,创建和已有内部表同名的表,会导致 schema 刷新异常
更新时间:2026-07-02 15:41
问题现象
当在问题版本的 Oracle 租户的 sys db 内,创建和已有内部表同名的表(比较大小写不敏感,如 DBA_OBJECTS 和 dba_objects 认为是同名),会导致 schema 刷新异常。
关键诊断信息
触发条件
Oracle 租户下的 sys db,创建与已有内部表同名的表,如 "DBA_OBJECTS"、"dba_objects"。
事后诊断
关键日志:build table name hashmap failed。
问题原因
OceanBase 数据库 V2.2.0 版本 schema 拆分引入的问题,Oracle 租户下同时存在 MySQL 模式和 Oracle 模式的内部表,相关代码路径 compat_mode 设置不对,没有拦住和已有 sys db 内部表同名的表。
影响租户
影响 OceanBase 数据库中的 Oracle 租户,对于 SYS 租户和 MySQL 租户无影响。
问题的风险及影响
schema 刷新异常。
影响版本
OceanBase 数据库企业版 V2.2.77 GA(oceanbase-2.2.77-20210508211731)及之后版本、V3.1.2 GA(oceanbase-3.1.2-20210618150922)及之后版本、V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本、V3.2.4 GA(oceanbase-3.2.4.0-100000072022102819)及之后版本。
解决方法
事前:
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP17(oceanbase-2.2.77-117000112023051914)、V3.2.3 BP8(oceanbase-3.2.3.3-108000062023041511)、V3.2.4 BP3(oceanbase-3.2.4.3-103000032023041816)。
事中:
联系 OceanBase 数据库技术支持,通过修改内部表 + 重启集群恢复。
规避方式
问题版本中不要在任何租户的 oceanbase/information_schema/sys/mysql 库下创建和已有内部表(含系统租户)同名(比较大小写敏感)的用户表/视图/临时表等对象。