我正在尝试导入某人发送给我的数据库:testdb.tar(43GB 大小)首先我使用以下方法导入:
pg_restore --host localhost --port 5432 --username postgres --dbname testdb --role postgres --no-password --verbose testdb.tar
花了23个小时才完成。我想它只使用了一个核心。现在,尝试使用可用的 16 个内核更快地完成它,我尝试了:
pg_restore --host localhost --port 5432 --username postgres --dbname testdb --role postgres --no-password -j 16 --verbose testdb.tar
但是,它会引发以下错误:
pg_restore: error: parallel restore is not supported with this archive file format
不太清楚它为什么抱怨。
因为“tar”格式无法并行恢复。
使用“自定义”或“目录”格式,
pg_dump
以便可以通过并行进程进行恢复。但是 Jeff 有一个好主意(请参阅注释):如果您将备份解压缩到一个目录中,那么您可以通过将 pg_restore 指向该目录来执行并行恢复。
我设法通过使用“-Fd”和目录源名称而不是 tar 源文件来使其工作。导出的目录包含以下文件:3235.dat.gz ... 3300.dat.gz、log.txt 和 toc.dat 所以,它可以通过以下方式工作: