sql可以统计当前所有租户的数据大小(leader)

【 使用环境 】生产环境 or 测试环境 生产
【 OB or 其他组件 】 ob
【 使用版本 】 4.0
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

问题: 当前集群下有5个租户,是否有 一条 sql可以 一次统计当前所有租户的数据大小(只包括leader)

根据文档库中的信息,您可以使用以下 SQL 查询来统计当前所有租户的数据大小(只包括 leader)。此查询基于 CDB_OB_TABLE_LOCATIONS 视图,该视图提供了表分布的相关信息。

统计所有租户的数据大小(仅限 Leader)

SELECT 
    tenant_id, 
    SUM(data_size) AS total_leader_data_size 
FROM 
    oceanbase.CDB_OB_TABLET_REPLICAS 
WHERE 
    role = 'LEADER' 
GROUP BY 
    tenant_id;

解释:

  • tenant_id: 租户的唯一标识符。
  • SUM(data_size): 计算每个租户中所有分区的 leader 副本的数据大小总和。
  • role = ‘LEADER’: 仅统计 leader 副本的数据大小。
  • GROUP BY tenant_id: 按租户分组,以获取每个租户的总数据大小。

注意事项:

  1. 视图选择:这里使用了 CDB_OB_TABLET_REPLICAS 视图,它包含了分区副本的信息,包括其角色(leader 或 follower)和数据大小。
  2. 环境适用性:上述 SQL 适用于 OceanBase 数据库 4.0 版本的生产环境。

如果您需要进一步细化查询结果,例如按具体的服务器 IP 分布查看,可以参考文档片段中的其他查询示例,并结合您的具体需求进行调整。

希望这能解决您的问题。如果有更多疑问或需要进一步的帮助,请随时告知。

更多信息请查看:

  1. GV$SYSSTAT
  2. 使用命令行进行运维
  3. 统计信息收集监控诊断
  4. 查看内存的使用信息
  5. GV$OB_GROUP_IO_STAT
  6. V$OB_GROUP_IO_STAT
  7. 查看 OceanBase 集群资源的使用情况