根据备份文件类型选择还原方式:若为custom、tar或目录格式,使用pg_restore命令恢复;若为plain文本格式,则用psql导入SQL脚本,需提前创建目标数据库并确保用户权限充足。

使用postgresql还原数据库通常通过命令行工具 pg_restore 或 psql 来完成,具体方式取决于你当初备份时使用的格式。
1. 确认备份文件类型
PostgreSQL 常见的备份方式有:
- plain 文本格式:由
pg_dump -F p生成,本质是 SQL 脚本 - custom 格式:由
pg_dump -F c生成,默认格式,二进制压缩,支持并行恢复 - tar 格式:由
pg_dump -F t生成,适合归档 - 目录格式:由
pg_dump -F d生成,用于并行备份和恢复
2. 使用 pg_restore 还原 custom、tar 或目录格式
如果你的备份是 .backup、.dump 或目录形式,使用 pg_restore:
pg_restore -h localhost -p 5432 -U username -d dbname -v your_backup_file.dump
常用参数说明:
- -h:数据库主机
- -p:端口号
- -U:用户名
- -d:目标数据库名(需提前创建)
- -v:显示详细过程
- –clean:还原前删除对象(小心使用)
- –if-exists:配合 –clean,避免因对象不存在报错
- -j 4:启用4个进程并行恢复(仅适用于目录格式或某些 custom 备份)
3. 使用 psql 还原文本格式(SQL 脚本)
如果备份是纯 SQL 文件(如 backup.sql),用 psql 恢复:
psql -h localhost -p 5432 -U username -d dbname -f backup.sql
确保目标数据库已存在。若没有,先创建:
createdb -U username dbname
4. 注意事项
- 还原前确认用户有足够权限操作目标数据库
- 如果还原到一个已有数据的库,建议先清空或使用
--clean参数 - 遇到权限错误时,检查
pg_hba.conf配置和用户角色 - 远程还原时确保网络可通,防火墙开放 5432 端口
基本上就这些,根据你的备份方式选择对应命令即可。