Postgresql 恢复转储时psql内存不足

Postgresql 恢复转储时psql内存不足,postgresql,postgresql-10,Postgresql,Postgresql 10,我有一个PostgreSQL文本转储文件,大小约为4.5GB(未压缩),我正在尝试恢复该文件,但由于内存不足,该文件总是失败 有趣的是,无论我尝试什么,它总是在转储文件的相同行号处失败,这使我相信我尝试的更改没有效果。(我确实查看了文件中的行号,它只是另一行数据,在文件中的该点上没有发生任何重要的变化。) 我正在使用带有-f选项的psql,正如我所读到的,它可以比标准输入更好。然而,这两种方法都失败了 我尝试了以下方法: 将work_mem从4MB增加到128MB 将共享缓冲区从128MB增加

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

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

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

我尝试了以下方法:

  • 将work_mem从4MB增加到128MB
  • 将共享缓冲区从128MB增加到2GB
  • 将虚拟机内存从8GB增加到16GB
使用Top和PG_Top,我可以看到(我相信这表明),当psql失败时,操作系统和数据库仍然有可用的内存。我并不怀疑某个地方的某些东西正在失去记忆,我只是希望我有一个更好的方法来告诉你那到底是什么

其他可能有用的信息:

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

转储文件中有什么?它是什么格式的?它是如何产生的?您如何知道该命令的内存不足?(可能是SSH超时/quotum)
。。。据我所知,使用-f选项可以比标准输入更好。
nonsense转储文件是由pg_dump创建的文本文件。文件的第一行确切地说:“由pg_dump version 10.4转储…”我要做的就是,当我运行psql并传入文件时,终端最终会停止并说“内存不足”。pg_dump可以生成4种不同的格式(其中一种是明文)。还有--column inserts和--inserts,您应该调查哪条语句失败(可能是
创建索引
)。你在用PostGIS吗?这是一个众所周知的记忆猪。