You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL.gz格式数据库恢复:pgAdmin/控制台操作及语法问题

恢复PostgreSQL数据库(从.gz压缩包的file.out文件)

一、先解压压缩包

不管用哪种恢复方式,先把.gz压缩包里的file.out提取出来:

  • Linux/macOS控制台:执行 gzip -d 你的备份文件名.gz 或 gunzip 你的备份文件名.gz,解压后得到file.out
  • Windows:用7-Zip、WinRAR等工具右键解压即可

二、控制台恢复(分两种备份格式处理)

情况1:file.out是纯SQL文本备份(最常见)

如果你的备份是通过pg_dump dbname > file.out生成的纯文本格式,不能用pg_restore——这大概率是你之前用pg_restore报语法错误的原因,应该用psql命令恢复:

  1. 确保本地PostgreSQL服务已启动
  2. 打开终端/命令提示符,执行:
psql -U 你的PostgreSQL用户名 -d 目标数据库名 -f /file/out的完整路径/file.out
  • 替换你的PostgreSQL用户名为有权限的用户(比如默认的postgres)
  • 目标数据库名需要提前创建好空数据库,可以用命令createdb -U 用户名 目标数据库名创建
  • 路径要写全,比如Windows下可能是C:\backup\file.out,Linux下是/home/user/backup/file.out

情况2:file.out是自定义/归档格式备份(用pg_dump -Fc生成)

如果确实是这种二进制备份格式,用pg_restore的正确语法示例:

pg_restore -U 你的PostgreSQL用户名 -d 目标数据库名 -v /file/out的完整路径/file.out
  • 同样需要提前创建空的目标数据库
  • -v是 verbose模式,会显示恢复过程,方便排查问题
  • 如果仍报错,检查参数顺序(比如-U和用户名不能分开)、路径是否正确,若备份时指定了特定schema,需添加-n 你的schema名参数

三、用pgAdmin恢复

  1. 打开pgAdmin,连接到本地PostgreSQL服务器
  2. 创建目标数据库:右键点击「Databases」→「Create」→「Database」,填写数据库名后点击Save
  3. 右键点击刚创建的数据库→「Restore...」
  4. 在恢复窗口中:
    • 「Filename」:点击选择按钮,找到解压后的file.out文件
    • 「Format」:根据备份格式选择:
      • 纯SQL文本选「Plain」
      • 自定义/归档格式选「Custom or tar」
    • 切换到「Options」标签,可勾选「Clean before restore」(恢复前清空目标数据库)等选项
    • 点击「Restore」开始恢复

常见问题排查

  • pg_restore语法错误:优先确认备份格式,纯文本备份必须用psql而非pg_restore
  • 权限问题:确保执行命令的用户拥有PostgreSQL超级权限,或目标数据库的读写权限
  • 版本兼容:本地PostgreSQL版本尽量不低于服务器版本,避免版本不兼容导致的恢复失败

内容的提问来源于stack exchange,提问作者piolvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:00:46