OceanBase 如何通过 sys 租户查询到所有的 database

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】如何在 sys 租户下查询所有的 database,通过 SELECT * FROM oceanbase.__all_database; 只能看到当前租户下的。

1 个赞

@论坛小助手

1 个赞

根据文档库中的信息,sys 租户是 OceanBase 数据库中的一个特殊租户,包含了所有的系统级别对象和元数据信息。为了查询所有租户的数据库信息,可以使用以下方法:

  1. 查询 oceanbase.CDB_OBJECTS 视图
    sys 租户下,可以通过查询 oceanbase.CDB_OBJECTS 视图来获取所有租户的数据库对象信息。此视图在系统租户下展示所有租户的对象信息。具体 SQL 语句如下:

    SELECT owner, object_name, object_type 
    FROM oceanbase.CDB_OBJECTS 
    WHERE object_type = 'DATABASE';
    
    • owner:表示数据库对象的所有者。
    • object_name:表示数据库对象的名称。
    • object_type:表示对象类型,这里我们过滤出类型为 DATABASE 的对象。
  2. 查询 oceanbase.DBA_OB_TENANTS 视图
    如果需要进一步了解每个租户的基本信息(包括租户 ID、名称等),可以查询 oceanbase.DBA_OB_TENANTS 视图。此视图展示了所有租户的基本信息,包括系统租户、用户创建的租户以及 Meta 租户。具体 SQL 语句如下:

    SELECT tenant_id, tenant_name, tenant_type 
    FROM oceanbase.DBA_OB_TENANTS;
    
  3. 注意事项

    • 默认情况下,__all_database 只会显示当前租户下的数据库信息。如果需要查看所有租户的数据库信息,请使用上述系统视图。
    • 确保当前连接的是 sys 租户,因为只有在 sys 租户下才能访问这些系统级别的视图。

以上方法可以帮助您在测试环境中通过 sys 租户查询到所有的数据库信息。如果您还有其他疑问,请随时提出!

检索到的文档如下:

  1. 系统视图概述
  2. 统计信息收集监控诊断
  3. oceanbase.CDB_WR_STATNAME
  4. 租户管理
  5. 查看内存的使用信息
  6. 查看租户和资源信息
  7. oceanbase.CDB_WR_SYSSTAT
  8. 查找某个租户中执行全表扫描的 SQL
  9. 快速入门系列教程
  10. 系统视图总览
1 个赞

__all_virtual_databases呢

2 个赞

__all_virtual_database 可以查询全部租户的database

1 个赞