按照官网文档操作社区版4.3.5报错视图不存在

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区版 4.3.5
【问题描述】
1.查看zone,视图不存在
obclient(root@t1)[(none)]> SELECT * FROM oceanbase.DBA_OB_ZONES;
ERROR 1146 (42S02): Table ‘oceanbase.dba_ob_zones’ doesn’t exist
2.查看节点,视图不存在
obclient(root@t1)[(none)]> SELECT * FROM oceanbase.DBA_OB_SERVERS;
ERROR 1146 (42S02): Table ‘oceanbase.dba_ob_servers’ doesn’t exist

基于文档:
查看节点-V4.3.5-OceanBase 数据库文档-分布式数据库使用文档

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

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

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

对于您在 OceanBase 社区版 4.3.5 中遇到的视图不存在的问题,特别是查询 oceanbase.DBA_OB_ZONESoceanbase.DBA_OB_SERVERS 视图时报错 1146 (42S02),这可能是因为系统视图未正确初始化或存在权限问题。为了更好地诊断和解决问题,建议使用 obdiag 工具进行日志采集,并提供一些额外信息。

日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base

请执行上述命令并上传生成的日志压缩包,以便我们进一步分析。此外,为了帮助我们更准确地定位问题,请您提供以下信息:

  1. 您是否对 OceanBase 进行了任何自定义配置或修改?
  2. 您是在什么情况下首次遇到此问题的?是新安装后立即出现,还是在一段时间的正常使用之后?
  3. 您是否有尝试过重新启动 OceanBase 集群?如果有,重启后问题是否仍然存在?
  4. 您当前使用的用户是否有足够的权限访问这些视图?

通过以上信息,我们可以更好地了解您的环境和问题的具体情况,从而为您提供更有效的解决方案。

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

谢谢,是因为在自建租户下查询zone、节点信息,导致没有查询到对应视图,sys租户可以查询到对应视图信息。
另外使用日志采集命令:obd obdiag gather scene run obtest --scene=observer.base才收集成功。

感谢您的反馈。根据您的描述,问题出现在自建租户下查询 oceanbase.DBA_OB_ZONESoceanbase.DBA_OB_SERVERS 视图时,这些视图在自建租户中确实不存在或不可见。这是因为这些系统视图通常只在 sys 租户中可见和可用。

解释与解决方案

  1. 系统视图的可见性

    • 在 OceanBase 数据库中,某些系统视图(如 DBA_OB_ZONESDBA_OB_SERVERS)仅在 sys 租户中可见。这是为了确保系统级别的信息不会被普通租户访问,从而保证系统的安全性和稳定性。
    • 如果您需要查询集群的节点信息或 Zone 信息,建议登录到 sys 租户进行查询。
  2. 正确的查询方法

    • 登录到 sys 租户后,您可以使用以下 SQL 语句来查询所需的系统视图信息:

      obclient -h<IP> -P<PORT> -uroot@sys#<cluster_name> -p<password>
      
    • 查询 Zone 信息:

      SELECT * FROM oceanbase.DBA_OB_ZONES;
      
    • 查询节点信息:

      SELECT * FROM oceanbase.DBA_OB_SERVERS;
      
  3. 日志采集命令

    • 您提到的日志采集命令 obd obdiag gather scene run obtest --scene=observer.base 是正确的。请确保在执行此命令时,您已经正确配置了 OBD 环境,并且具有相应的权限。

总结

  • 自建租户:在自建租户中无法直接访问某些系统级别的视图,如 DBA_OB_ZONESDBA_OB_SERVERS。如果您需要查询这些信息,请切换到 sys 租户。
  • 日志采集:使用 obd obdiag gather scene run 命令可以成功收集日志,这有助于进一步诊断和解决问题。

如果您有更多问题或需要进一步的帮助,请随时联系 OceanBase 的技术支持团队或继续在这里提问。希望这些信息对您有所帮助!

具体信息可参考以下文档:

  1. V$UNIT
  2. 系统视图概述
  3. GV$UNIT
  4. 监控索引
  5. 副本介绍
  6. 租户性能诊断
  7. 错误码
  8. Switchover 或 Failover 相关问题

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)