在这种情况下,主要的困难是来自Greenplum数据库的磁盘空间不足。我们在Amazon Linux机器上运行Greenplum Database 4.2.0.0。
调查显示如下:
1)Greenplum说我们的空间很小。我们运行gp_disk_free命令并获得以下结果。
0;" sdw1";" /dev/md126";2740872
1;" sdw1";" /dev/md127";1968592
2;" sdw2";" /dev/md126";1100
3;" sdw2";" /dev/md127";1728236
每一行都是数据库中的一个段,sdw1和sdw2是主机,而/ dev / md *是数据库所在的设备。数字是数据库中剩余的字节数。 AKA,几兆字节。
2)我们用df -h查看我们的Linux系统并获得以下内容:
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.9G 1.6G 6.3G 21% /
tmpfs 3.7G 0 3.7G 0% /dev/shm
/dev/xvdo 8.0G 48M 8.0G 1% /home
/dev/md127 24G 456M 24G 2% /data1
我们的结论是我们有足够的空间让数据库占用,但是我们无法弄清楚如何动态配置Greenplum,甚至不知道如何增加它以增加Linux盒子上的文件系统空间。
我们已经调查了gpexpand命令,它似乎仅在您添加新主机时才有效,而考虑到我们在Linux机器上有多少空间我们不需要做的硬件。
我们还通过增加max_fsm_pages和max_fsm_relations参数来增加可用空间映射,但是在运行Vacuum命令后几乎没有释放空间。我们迷失在下一步该做什么。
关于如何在Linux机器上增加Greenplum数据库磁盘大小的任何想法?
答案 0 :(得分:0)
gp_disk_free只是在每个段上运行df命令。它报告以千字节为单位的免费大小。
您在2个细分服务器上有4个细分。每个段使用不同的磁盘;这是一个很好的策略。
在sdw2上运行并使用/ dev / md126的段2是磁盘上较低的段。它只有1.1 MB。
如果我假设数据库以外的任何东西都没有使用磁盘空间,则存在偏斜问题。您的某些表具有分发策略,这些分发策略导致在段2上放置的行多于其他段。
您可以使用以下内容进行调查:
select gp_segment_id, count(1) from <your_table_name> group by 1 order by 1 ;
解决方案是更改您的分发政策。选择一个不同的列放置在&#34;由&#34;分发。条款或使用&#34;随机分发&#34;子句。
如果不是歪斜问题,请查看sdw2上消耗磁盘空间的内容。
伦纳德沃尔斯塔德匹
www.gopivotal.com