将大型.dump 文件导入 Postgres 数据库(Win 10)

将大型.dump 文件导入 Postgres 数据库(Win 10)

我遇到了一个问题,我想将一个非常非常大的 .dump 文件(530gb)导入到 docker 内的 postgres 数据库中。

这是我在 Powershell 中运行的命令:

cat .\dbexport.dump | docker exec -i my_timescaledb psql -U my_username -d my_relation

运行约 5 分钟后,我的 RAM 溢出并且运行脚本崩溃。

任务管理器在 powershell 窗口上显示工作量为 99%。这是错误消息:

System.OutOfMemoryException

Google 说,我可能应该像这样限制 powershell 窗口的 RAM 使用量:

Set-Item WSMan:\localhost\Plugin\Microsoft.PowerShell\Quotas\MaxMemoryPerShellMB 8192

不幸的是,它根本没有帮助。Powershell 窗口仍然使用了 99% 的可用 RAM。

(是的,我重新启动了 WSMan 甚至我的电脑)

我还能做些什么来最终导入我的数据库?

答案1

对我来说,解决方案是在 Linux 而不是 Windows 中运行该命令。如果你有类似的问题,但无法切换到 Linux,你可以看看这个:

将文件内容通过管道传输到 PowerShell 命令中,而无需将整个文件加载到内存中

相关内容