Greenplum数据库没有动态扩展到我们的Linux系统

时间:2013-07-18 16:01:58

标签: postgresql greenplum

在这种情况下,主要的困难是来自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数据库磁盘大小的任何想法?

1 个答案:

答案 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