如何限制pg_dump的内存使用?

时间:2018-05-15 08:01:32

标签: postgresql amazon-web-services azure heroku pg-dump

我在Heroku / AWS上有一个~140 GB的postgreDB。我想在Windows Azure - Windows Server 2012 R2虚拟机上创建一个转储,因为我需要将数据库移动到Azure环境中。

数据库有几个较小的表,但主要由一个约130 GB的表组成,包括索引。它有大约5亿行。

我已尝试使用pg_dump,其中包含:

./pg_dump -Fc --no-acl --no-owner --host * --port 5432 -U * -d * > F:/051418.dump

我已尝试过各种Azure虚拟机大小,包括一些相当大的(D12_V2)28GB内存,4个VCPU 12000 MAXIOP等。但在所有情况下,由于内存交换,pg_dump完全停止。

在上面的机器上,它目前正在使用所有可用内存,并使用过去12小时交换磁盘上的内存。由于交换,我不希望它完成。

从其他帖子我已经明白它可能是网络速度的问题,比磁盘IO速度快得多,导致pg_dump吸收所有可用内存等等,所以我尝试过使用具有大多数IOP的天蓝色机器。这没有帮助。

那么还有另外一种方法可以强制pg_dump限制它的内存使用量,或等待更多的数据,直到它写入磁盘并清除内存?

期待您的帮助!

Krgds。

基督教

0 个答案:

没有答案