Linux 上备份 pgAdmin 配置的实用指南
一 备份范围与关键目录
- 需要覆盖的核心内容包括:
- 配置与元数据:系统级配置 /etc/pgadmin/(若存在)、用户级配置 ~/.pgadmin/(含服务器连接、用户偏好、密钥等)。
- 数据与会话:数据目录 /var/lib/pgadmin/(存放用户会话、服务器注册信息、存储卷等)。
- 容器场景:宿主机上挂载的 pgAdmin 数据卷(如 /root/data/pgadmin4),以及容器内备份脚本与日志路径(如 /var/lib/pgadmin/)。以上路径在不同安装方式下可能略有差异,建议先确认实际路径后再备份。
二 本机安装场景的备份步骤
- 建议先停止服务以避免写入冲突(若 pgAdmin 以服务运行):sudo systemctl stop pgadmin4。
- 使用 tar 打包关键目录与文件(示例命令,按需增减路径):
- 仅配置:tar -czvf pgadmin_conf_$(date +%F).tar.gz /etc/pgadmin ~/.pgadmin
- 配置 + 数据:tar -czvf pgadmin_full_$(date +%F).tar.gz /etc/pgadmin ~/.pgadmin /var/lib/pgadmin
- 将压缩包复制到安全位置(如异地/云端存储),并定期校验与清理过期备份。
- 如需加密与增量备份,可使用 Duplicity:duplicity --full-if-older-than 1M /etc/pgadmin ~/.pgadmin file:///backup/pgadmin_backup/。以上做法覆盖系统级与用户级配置及数据目录,适合本机部署的常规备份需求。
三 Docker 容器场景的备份步骤
- 确认卷挂载点:例如宿主机 /root/data/pgadmin4 挂载到容器内 /var/lib/pgadmin(可通过 docker inspect pgadmin4 查看 Mounts)。
- 直接在宿主机备份挂载卷:tar -czvf pgadmin4_vol_$(date +%F).tar.gz /root/data/pgadmin4。
- 如需在容器内执行备份脚本并落盘到挂载卷,可创建脚本(如 /var/lib/pgadmin/back.sh),由宿主机 crontab 定时调用:
- 示例脚本思路:设置 PGPASSWORD、调用 pg_dump 将自定义格式备份写入挂载卷的 backup 目录,并记录日志。
- 宿主机定时任务示例:0 2 * * * docker exec pgadmin4 /bin/sh -c “/var/lib/pgadmin/back.sh >> /var/lib/pgadmin/logs/pg_back.log 2>&1”
- 备份完成后,同样建议将宿主机上的备份归档复制到异地/云端,确保可恢复性与安全性。
四 恢复与迁移
- 本机恢复:先停止服务(若以服务运行),解压备份包到对应路径(如 tar -xzvf pgadmin_full_2025-12-27.tar.gz -C /),再启动服务:sudo systemctl start pgadmin4。
- 容器恢复:将备份归档解压到宿主机挂载卷目录(如 /root/data/pgadmin4),确保文件属主与容器内运行用户一致(常见为 999:999),然后重启容器:docker restart pgadmin4。
- 迁移到新机器:在新机器准备相同目录结构,复制 /etc/pgadmin、~/.pgadmin、/var/lib/pgadmin(或宿主机挂载卷)到对应位置,按需调整 pgadmin.conf 中的连接与路径配置,启动服务并验证登录与服务器列表是否完整。
五 自动化与最佳实践
- 定期与异地:使用 cron 定时执行备份(如每日 2:00),并将归档同步到异地/云端;保留多份与多周期(日/周/月)以控制 RPO/RTO。
- 加密与校验:对敏感备份启用加密(如 GPG 或 Duplicity 内置加密),并定期做恢复演练与校验(校验和/抽样恢复)。
- 变更前必备份:在执行 pgAdmin 升级、迁移或重大配置调整前,先完成配置与数据的全量备份,降低回滚风险。