Debian 上使用 pgAdmin 备份与恢复 PostgreSQL 数据
一 环境准备与连接
- 在 Debian 上安装并启动 pgAdmin 4(推荐使用 apt 官方源),首次启动设置管理员密码。
- 在 pgAdmin 中添加 PostgreSQL Server 连接,填写主机、端口、维护数据库、用户名/密码,必要时启用 SSL/TLS 并验证服务器证书。
- 确保用于备份/恢复的数据库用户具备相应权限(如 pg_dump 需要 CONNECT 与相应对象的 SELECT 权限;执行恢复需要 CREATE/CONNECT 等)。
二 使用 pgAdmin 图形界面备份
- 在左侧对象树中,右键目标数据库 → Backup…。
- General:设置备份文件的 Filename、Format(常见为 Plain 即 SQL 脚本,或 Custom 即自定义归档)、Encoding、Role name 等。
- Data/Objects:按需勾选 Pre-data / Data / Post-data,选择仅结构、仅数据或全量。
- Options:按需启用/禁用 Blobs、OIDs、触发器/规则等的 DDL 行为。
- 点击 Backup 开始,完成后右下角显示结果;备份文件位于 General 中指定的 Filename 路径。
三 使用 pgAdmin 图形界面恢复
- 恢复前准备:若目标库已存在且需全量覆盖,建议先 DROP/CREATE 目标库(或使用新库名恢复);确保恢复用户对目标库具备 CREATE/CONNECT 等权限。
- 在对象树中右键目标数据库 → Restore…。
- General:选择备份文件的 Format 与 Filename。
- Data/Objects:选择要恢复的对象范围(与备份时的选择保持一致可减少问题)。
- Options:按需设置如遇到错误是否继续、是否只恢复数据/结构等。
- 点击 Restore 开始,完成后在右下角查看结果;必要时在 SQL 工具中执行
\dt、SELECT COUNT(*) 等验证对象与数据是否到位。
四 命令行补充与自动化
- 逻辑备份(SQL 脚本):
- 备份:
pg_dump -h localhost -U postgres -f /path/mydb.sql mydb
- 恢复:
psql -h localhost -U postgres -d mydb -f /path/mydb.sql
- 逻辑备份(自定义归档,便于选择性恢复):
- 备份:
pg_dump -h localhost -U postgres -Fc -f /path/mydb.dump mydb
- 恢复:
pg_restore -h localhost -U postgres -d mydb /path/mydb.dump
- 定时备份(示例,保留近 7 天):
0 2 * * * /usr/bin/pg_dump -U postgres -h localhost mydb > /backup/mydb_$(date +\%F).sql
0 3 * * * find /backup -name "mydb_*.sql" -mtime +7 -delete
- 提示:命令行适合无人值守与批量任务;pgAdmin 适合交互式与临时操作。
五 备份策略与注意事项
- 备份类型选择:
- 逻辑备份(pg_dump/pg_restore):跨版本迁移、选择性恢复灵活,适合中小规模与开发/测试。
- 物理备份(如 pg_basebackup):接近崩溃一致性、恢复速度快,适合生产环境的快速整机恢复。
- 需要 时间点恢复(PITR) 时,启用 WAL 归档(wal_level、archive_mode、archive_command),配合全量备份实现任意时间点回滚。
- 安全与可用性:
- 备份文件应存放在 外部/异地/云存储,并可 加密;定期做 恢复演练 验证可用性与完整性。
- 恢复操作对业务有冲击,建议在 低峰时段 执行并全程监控;必要时先在 非生产环境 验证流程。
- 配置与元数据:
- 除数据库外,建议一并备份 pgAdmin 配置与元数据(如 ~/.pgadmin4/ 或 /etc/pgadmin/ 目录),便于快速恢复管理环境。