如何在Linux上使用pgAdmin进行数据库恢复
导读:在 Linux 上使用 pgAdmin 进行数据库恢复 一、准备与前提 安装并登录 pgAdmin 4(常见访问地址为 http://<服务器IP>:5050),确保已创建目标 服务器连接 与 目标数据库(若从空库恢复,先新建...
在 Linux 上使用 pgAdmin 进行数据库恢复
一、准备与前提
- 安装并登录 pgAdmin 4(常见访问地址为 http://< 服务器IP> :5050),确保已创建目标 服务器连接 与 目标数据库(若从空库恢复,先新建数据库并设置正确的 所有者/Owner)。
- 准备与备份方式匹配的备份文件:
- 逻辑备份:.sql(纯文本 SQL 脚本)、.dump/.backup(由 pg_dump 生成,配合 pg_restore 使用)。
- 物理备份:目录形式的 basebackup(由 pg_basebackup 生成,不走 pgAdmin 图形界面恢复)。
- 权限与连接:用于恢复的数据库用户需具备相应权限(如 CREATEDB、对目标库的 OWNER 或 SUPERUSER 等),并且 pg_hba.conf 允许来自 pgAdmin 客户端的连接;必要时在 Linux 防火墙放行 5432(PostgreSQL)与 5050(pgAdmin)端口。
二、图形化恢复步骤(pgAdmin 4)
- 纯 SQL 脚本(.sql)
- 在左侧树形导航中右键目标数据库,选择 Restore。
- 在“Restore”对话框中,选择 Format: Plain,通过文件选择器指定 .sql 文件。
- 选择 Role(执行恢复的角色,如 postgres),确认后点击 Restore;右下角会显示进度,完成后刷新数据库查看对象。
- 自定义/目录格式(.dump/.backup)
- 先创建空的目标数据库(建议与备份时同名或明确指定 Owner)。
- 右键目标数据库,选择 Restore,在对话框中选择 Format: Custom 或 Directory,指定 .dump/.backup 文件或目录。
- 选择 Role,必要时勾选/调整恢复选项(如是否清理现有对象),点击 Restore 并等待完成。
- 补充:若备份时仅导出了 Schema(例如只备份了 public),也可在 Schemas → public → Restore 中执行恢复。
三、常见备份格式与恢复方式对照
| 备份格式 | 生成工具 | 在 pgAdmin 的恢复位置 | 关键选项与提示 |
|---|---|---|---|
| .sql(纯文本) | pg_dump -F p | 目标数据库的 Restore | 选 Format: Plain;适合小到中等规模库;导入即执行 SQL 脚本 |
| .dump/.backup(自定义/目录) | pg_dump -F c/-F d | 目标数据库的 Restore | 选 Format: Custom/Directory;支持并行与选择性恢复;大型库更友好 |
| Basebackup(目录) | pg_basebackup | 不适用(不走 pgAdmin) | 需停库或用 recovery.conf/pg_rewind 做物理恢复;适合整库级快速恢复 |
四、常见问题与排查
- 权限不足或连接被拒:确认用于恢复的 数据库用户 具备足够权限,且 pg_hba.conf 与 防火墙 已放行 5432/5050。
- 目标库不存在或 Owner 不匹配:先在 pgAdmin 中 创建目标数据库 并指定正确的 Owner,再进行恢复。
- 恢复对象已存在冲突:在 Custom 格式恢复时可按需选择清理选项,或先清理目标库再恢复。
- 大文件/长时间无响应:优先使用 Custom/Directory 格式并考虑分批/并行恢复;必要时在 低峰时段 执行。
- 物理备份无法通过 pgAdmin 恢复:此类备份需采用 文件系统级 的恢复流程(如基础备份 + WAL 回放),请改用命令行工具。
五、命令行恢复备选(当图形界面不适用时)
- 纯 SQL 脚本(.sql)
- 示例:
- psql -h localhost -U postgres -d mydb -f /path/mydb.sql
- 示例:
- 自定义/目录格式(.dump/.backup)
- 示例:
- pg_restore -h localhost -U postgres -d mydb /path/mydb.dump
- 示例:
- 物理备份(Basebackup)
- 示例:
- 停止实例后,将备份目录拷贝至数据目录并配置 recovery.conf/pg_rewind 等,再启动实例完成恢复。
- 示例:
- 提示:命令行方式适合 自动化/批量/大库 场景,且便于精确控制恢复参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux上使用pgAdmin进行数据库恢复
本文地址: https://pptw.com/jishu/768342.html
