恢复 postgres 数据库挂起 - 没有错误

Yun*_*nti 4 postgresql

我目前正在尝试从 tar 文件中的 pg_dump (大约 100mb)创建的备份中恢复数据库。

但是尝试恢复 pg_restore -U postgres -f "example.tar"

只是一直挂着,似乎从来没有工作过。

尝试诊断和解决问题的最佳方法是什么?

Sch*_*ern 8

它正在等待标准输入上的输入。

-f指定输出文件,而不是输入文件。如果没有输入,它会等待标准输入上的输入。如果您键入ctrl-d结束输入,它会显示类似的内容pg_restore: error: input file is too short (read 0, expected 5)

正确的调用是...

pg_restore --dbname=DatabaseName -Upostgres --format=tar example.tar
Run Code Online (Sandbox Code Playgroud)

--dbname是要恢复到的数据库的名称。如果不存在,添加--create告诉pg_restore创建它。

--format=tar并不是绝对必要的,pg_restore可以猜测文件类型,但为什么要冒险呢?

请参阅pg_restore 文档