如何从.pgdump二进制文件恢复PostgreSQL数据库?
解决PostgreSQL .pgdump备份恢复无反应的问题
核心原因
pg_restore是系统终端的独立命令行工具,不是psql的内部命令——你在psql提示符里执行它自然不会有任何反应。
正确恢复步骤
- 退出psql:在psql命令行输入
\q并回车,回到系统终端(Windows的CMD/PowerShell、Linux/macOS的bash/zsh等)。 - 执行恢复命令:在系统终端里运行以下格式的命令
# 基础命令 pg_restore -d 你的目标数据库名 /完整路径/到/你的备份文件.pgdump # 如果需要指定用户名(比如postgres超级用户) pg_restore -U postgres -d 你的目标数据库名 /完整路径/到/你的备份文件.pgdump # 加-v参数查看详细执行日志,方便排查问题 pg_restore -v -U postgres -d 你的目标数据库名 /完整路径/到/你的备份文件.pgdump - 前置检查:确保目标数据库已经创建,如果还没创建,在系统终端执行
createdb 你的目标数据库名,或者在psql里执行CREATE DATABASE 你的目标数据库名;。
额外注意事项
- 如果系统终端找不到
pg_restore命令,直接用它的完整路径执行(比如Windows下可能是"C:\Program Files\PostgreSQL\15\bin\pg_restore.exe",Linux/macOS下可能是/usr/bin/pg_restore)。 - 若备份文件不在当前终端的工作目录,一定要写完整的文件路径,避免路径错误导致无响应。
内容的提问来源于stack exchange,提问作者Osca
相关产品推荐
相关产品推荐

