Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Greenplum数据库没有动态扩展到我们的Linux系统_Postgresql_Greenplum - Fatal编程技术网

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

Postgresql Greenplum数据库没有动态扩展到我们的Linux系统,postgresql,greenplum,Postgresql,Greenplum,这种情况下的主要困难是Greenplum数据库的磁盘空间不足错误。我们正在Amazon Linux机器上运行Greenplum数据库4.2.0.0 调查结果如下: 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

这种情况下的主要困难是Greenplum数据库的磁盘空间不足错误。我们正在Amazon Linux机器上运行Greenplum数据库4.2.0.0

调查结果如下:

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说我们的空间不足。我们运行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数据库的磁盘大小,有什么想法吗?

gp\u disk\u free只需在每个段上运行df命令。它以KB为单位报告可用大小

在2个段服务器上有4个段。每个段使用不同的磁盘;这是一个好策略

在sdw2上运行并使用/dev/md126的段2是磁盘空间较低的段。它只有1.1MB

如果我假设除了数据库之外没有其他东西在使用磁盘空间,那么skew就有问题了。某些表的分发策略导致在段2上放置的行比在其他段上放置的行多得多

您可以通过以下方式对此进行调查:

select gp_segment_id, count(1) from <your_table_name> group by 1 order by 1 ;
解决方案是更改您的分发策略。选择要放置在distributed by子句中的其他列,或使用distributed Random子句

如果这不是一个倾斜问题,那么看看是什么在sdw2上消耗磁盘空间

伦纳德·沃尔斯塔德

关键的


www.gopivotal.com

这帮了大忙。虽然这不是一个完整的解决方案,但它确实帮助我们认识到如何最好地分配行。