Postgresql 如何限制pg#U转储';内存使用情况如何?
我在Heroku/AWS上有一个约140 GB的postgreDB。我想在windows Azure-windows server 2012 R2虚拟机上创建此文件的转储,因为我需要将数据库移动到Azure环境中 DB有几个较小的表,但主要由一个占用约130GB的表组成,包括索引。它大约有5亿行 我尝试使用pg_dump进行此操作,包括: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
./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
当然;)它就像一个符咒!非常感谢。