GBase 8a查看一个库或schema占用的空间

GBase 8a 目前版本都是采用一个库一个目录,表是库下面的子目录的方式保存数据,本文提供了一些查看一个库或schema占用磁盘空间方法以供参考。

文件系统级估算

直接从文件系统,找到该库所在的目录,计算其占有的空间。该才做仍然会消耗大量的磁盘资源,表越多,列越多,消耗越大。

du -sh 安装目录/gnode/userdata/gbase/库名

影响程度建议在实际环境测试后,再决定是否使用。比如100万个表,预计可能要几分钟到几十分钟的磁盘消耗,换SSD等高速盘会极大改善影响程度。

需要计算每个节点的空间,然后累加后为占用的总空间。 如果各个节点磁盘占用接近,也可以用单个节点统计结果*计算节点数量来估算。

自定义表空间

V95版本支持自定义表空间,并支持配额管理。 

通过查询元素据表 information_schema.tablespaces ,获得表空间的磁盘占用。

该使用空间,在每次数据有变动是自动修正,无需每次都扫描所有子目录,故性能好。

如下是一个库,配置了2个表空间的例子。将每个节点的每个表空间,累加后就是总空间占用。

gbase> select * from information_schema.tablespaces where db_name='ab';
+-----------+---------+---------------+-----------------+----------------------------+------------+-----------+-----------+-----------+----------+
| NODE_NAME | DB_NAME | TABLESPACE_ID | TABLESPACE_NAME | TABLESPACE_PATH            | IS_DEFAULT | MAX_SIZE  | USED_SIZE | FREE_SIZE | SEG_SIZE |
+-----------+---------+---------------+-----------------+----------------------------+------------+-----------+-----------+-----------+----------+
| node1     | ab      |             1 | sys_tablespace  | /opt/gbase/tablespace_100m | yes        | 104857600 | 160042004 | 0         | 16777216 |
| node1     | ab      |             2 | ts_1            | /opt/gbase/tablespace_1    | no         | 52428800  | 80020808  | 0         | 10485760 |
| node2     | ab      |             1 | sys_tablespace  | /opt/gbase/tablespace_100m | yes        | 104857600 | 160042004 | 0         | 16777216 |
| node2     | ab      |             2 | ts_1            | /opt/gbase/tablespace_1    | no         | 52428800  | 80020808  | 0         | 10485760 |
+-----------+---------+---------------+-----------------+----------------------------+------------+-----------+-----------+-----------+----------+
4 rows in set (Elapsed: 00:00:00.00)

累计每个表的空间

通过元数据,获得每个表占用的空间。

好处是可以通过SQL获得,且循环调度可以控制;缺点是要扫描每个表,系统消耗大。

总结

如果是V9版本,且要控制一些大表占用的空间,建议用自定义表空间。

其它2个方案,都会占用较大的系统资源,建议在测试影响后再考虑是否使用。 另外建议降低频率,比如每天一次,且选择在对业务影响最小的时间操作,比如凌晨4-5点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值