GBase 8a
运维管理
问答

查询集群下指定的分库占用总空间空间的大小报错

发表于2025-08-08 11:36:48135次浏览4个评论

想要统计集群下某个库占用的空间大小,库中包含物理表、视图和存储过程,使用cluster_tables表统计时报错。是否有其他统计方法。

【GBase版本】:9.5.3.27.20

【问题描述】*:

使用SQL查询报错:select *  from information_schema.cluster_tables where table_schema='xxx' 

报错信息:

SQL错误【ErrorCode:1708】【SQLState:HY000】:(GBA-02EX-1004)Table‘xxxx’doesn't exist。(其中XXX是库中的视图名称)

评论

登录后才可以发表评论
pikaysw发表于 11个月前
是已知问题,在9.5.2.47版本和9.5.3.29版本上修复过了。

暂无好的绕行办法,可以du -sh库路径或者挨个查询表名汇总

或者向Gbase售后人员提出需求申请修复该问题的版本,进行集群版本升级
GBase用户27644发表于 11个月前
@pikaysw:谢谢,再请教下。这个版本的数据库使用存储过程,把表名循环调用,然后把结果写入一个结果表,是否支持。我使用insert into select的方式,sql执行不成功。把结果存入临时表中,也执行不通过。
pikaysw发表于 11个月前
@GBase用户27644:嗯,不支持。
但是可以select into outfile导出查询结果
BYRAN发表于 11个月前
(1)在GBase8a中,视图和存储过程没有占用存储大小的概念,只有定义,他们的定义分别放在information_schema.views和information_schema.routines里。
(2)表是有占用空间的,可以在 information_schema.cluster_tables 中查询,但需要注意查询时,需要同时指定TABLE_SCHEMA和TABLE_NAME条件,方可查询。
(3)GBase8a里是没有库的空间大小的信息的。如果想要估算库的大小,可以先统计出该库内所有的表,然后按照步骤(2)去全量统计这些表。