Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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 如何限制pg#U转储';内存使用情况如何?_Postgresql_Amazon Web Services_Azure_Heroku_Pg Dump - Fatal编程技术网

Postgresql 如何限制pg#U转储';内存使用情况如何?

Postgresql 如何限制pg#U转储';内存使用情况如何?,postgresql,amazon-web-services,azure,heroku,pg-dump,Postgresql,Amazon Web Services,Azure,Heroku,Pg Dump,我在Heroku/AWS上有一个约140 GB的postgreDB。我想在windows Azure-windows server 2012 R2虚拟机上创建此文件的转储,因为我需要将数据库移动到Azure环境中 DB有几个较小的表,但主要由一个占用约130GB的表组成,包括索引。它大约有5亿行 我尝试使用pg_dump进行此操作,包括: ./pg_dump -Fc --no-acl --no-owner --host * --port 5432 -U * -d * > F:/051418

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

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

我尝试使用pg_dump进行此操作,包括:

./pg_dump -Fc --no-acl --no-owner --host * --port 5432 -U * -d * > F:/051418.dump
我试过各种Azure虚拟机大小,包括一些相当大的(D12_V2)28GB ram、4个VCPU 12000 MAXIOPs等。但在所有情况下,pg_转储都会由于内存交换而完全停止

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

从其他帖子中,我了解到这可能是网络速度的问题,比磁盘IO速度快得多,导致pg_转储占用所有可用内存等,因此我尝试使用具有大多数IOPs的azure机器。这没有帮助

那么,有没有其他方法可以强制pg_dump限制其内存使用量,或者等待提取更多数据,直到它写入磁盘并清除内存

期待您的帮助

Krgds


Christian

可能是因为您正在使用标准输出重定向,请尝试让pg_dump直接写入文件
/pg_dump-Fc--无acl--无所有者--主机*--端口5432-U*-d*-f:/051418。dump
当然;)它就像一个符咒!非常感谢。