暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A 表存储空间过大

原创 章芋文 2019-10-01
585

在现网使用过程中,易出现个别表数据存储倾斜,导致单个磁盘使用率远大于其他磁盘。由于数据库对象数较多,如通过table_skewness()函数进行排查,耗时巨大。

原因分析

执行du -sh * 

对比使用率正常与使用率远大于其他磁盘master与slave的使用情况;

通过cm_ctl query –Cvd 

确认该磁盘节点对应的DN实例(如上一步检查为slave磁盘占用率过大,则需要查看与该备实例对应的主实例磁盘使用情况),确认DN实例端口号;

进入实例base目录,执行du -ak | sort -nr | 

more查找类似如下图中所示,文件大小为1GB,且文件前缀数字ID相同的文件,查找相同文件数量最多的文件,记录其ID值及其所在文件夹ID值。


通过gsql连接DN实例,并通过文件夹ID确认表所属数据库。

如上图示例中,执行:

gsql -d postgres -p 25330 –r

select oid,* from pg_database where oid='1642599'


切换至该数据库,通过文件的ID确认表名称,执行如下SQL:

select relname from pg_class where relfilenode = 3308672;


根据表名称进一步确认该表所属schema,执行如下SQL:

SELECT n.nspname as ""Schema"",

c.relname as ""Name""

FROM pg_catalog.pg_class c

LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace

WHERE relname = 'insured';


通过gsql连接CN实例,最后再通过table_skewness()函数进行核实确认。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论