我遇到了一个问题,我想将一个非常非常大的 .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,你可以看看这个: