恢复转储时 psql 内存不足

Bob*_*eri 5 postgresql postgresql-10

我有一个大小约为 4.5GB(未压缩)的 PostgreSQL 文本转储文件,我试图恢复它,但由于内存不足而总是失败。

有趣的是,无论我尝试什么,它总是在转储文件的完全相同的行号处失败,这让我相信我尝试的更改没有效果。(我确实查看了文件中的这个行号,它只是另一行数据,文件中的那个点没有发生任何重要的事情。)

我正在使用带有 -f 选项的 psql,因为我读到它比标准输入更好。然而,这两种方法都失败了。

我尝试了以下方法:

  • 将 work_mem 从 4MB 增加到 128MB
  • 将共享缓冲区从 128MB 增加到 2GB
  • 将 VM 内存从 8GB 增加到 16GB

使用 Top 和 PG_Top 我可以看到(我相信显示)当 psql 失败时,操作系统和数据库仍然有可用的内存。我并不怀疑某个地方的内存不足,我只是希望我有一种更好的方式来说明那到底是什么。

其他可能有用的信息:

  • PostgreSQL 10.5
  • 在 VMWare 工作站上运行的 Ubuntu 16.04 LTS