1

这种情况下的主要困难是 Greenplum 数据库的磁盘空间不足错误。我们在 Amazon Linux 机器上运行 Greenplum 数据库 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* 是它说数据库所在的设备。这些数字是数据库中剩余的字节数。又名,几兆字节。

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 数据库的磁盘大小的任何想法?

4

1 回答 1

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 ;

解决方案是更改您的分配策略。要么选择不同的列放在“分发者”子句中,要么使用“随机分布”子句。

如果不是倾斜问题,那么看看是什么消耗了 sdw2 上的磁盘空间。

伦纳德沃尔斯塔德

关键

www.gopivotal.com

于 2013-07-19T11:05:21.590 回答