【问题标题】:Greenplum database is not expanding dynamically to our Linux systemGreenplum 数据库没有动态扩展到我们的 Linux 系统
【发布时间】:2013-07-18 16:01:58
【问题描述】:

这种情况下的主要困难是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 数据库的磁盘大小有什么想法吗?

【问题讨论】:

    标签: postgresql greenplum


    【解决方案1】:

    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

    【讨论】:

    • 这帮了很多忙。虽然它不是一个完整的解决方案,但它确实帮助我们了解如何最好地分布我们的行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    相关资源
    最近更新 更多