温馨提示×

如何在Linux上使用pgAdmin进行数据库备份策略制定

小樊
35
2026-01-04 11:05:36
栏目: 智能运维

Linux上使用 pgAdmin 制定数据库备份策略

一 策略设计要点

  • 明确备份范围:仅库数据、整库、或包含全局对象(如角色/表空间),是否需要对象级细粒度恢复。
  • 选择备份类型:
    • 逻辑备份:使用 pg_dump/pg_dumpall,便于迁移与对象级恢复,适合常规业务库。
    • 物理备份:使用 pg_basebackup,适合快速全量恢复与搭建备库。
  • 设定频率与保留:结合变更频率定义全量/增量节奏,并配置保留周期(如保留最近 N 天/周)。
  • 存储与隔离:备份落盘到独立磁盘或对象存储,避免与数据库同盘;生产/测试环境分离。
  • 安全与合规:对备份加密、限制访问权限,并记录操作审计日志。
  • 验证与演练:定期做恢复演练与备份完整性校验,确保可恢复性与 RPO/RTO 达标。

二 在 pgAdmin 中配置备份

  • 连接与入口:在 pgAdmin 左侧树连接到目标 PostgreSQL 服务器,右键目标数据库 → Backup…
  • 关键参数建议:
    • 格式选择:
      • Custom:自定义归档,支持对象级恢复与并行,适合中大型库。
      • Tar:标准 tar 归档,跨平台友好。
      • Plain:SQL 脚本,便于审阅与小型库迁移。
      • Directory:目录格式,分文件存储,适合超大型库并行备份。
    • 压缩与并行:设置压缩级别(如 1–9)与并行任务数以平衡速度与体积。
    • 内容范围:在 Data Options 选择备份 Pre-data/Data/Post-data,可按需排除对象。
    • 执行与校验:执行后在目标目录获取备份文件;可用 pgAdmin 的 Check 功能校验备份完整性。

三 自动化与调度

  • 方式一 pgAgent(推荐):在 pgAdmin 中安装并配置 pgAgent,新建作业(Jobs)→ 新建步骤(选择 Backup)→ 指定数据库与备份参数 → 配置调度(如每日 02:00)→ 设置保留策略(如保留最近 30 天)。
  • 方式二 Linux crontab + pg_dump:
    • 示例(每天 2 点全量备份并保留 30 天):
      0 2 * * * /usr/bin/pg_dump -h localhost -U postgres -F c -b -v -f /var/backups/pg/$(date +\%F).dump mydb
      0 3 * * * find /var/backups/pg -name "*.dump" -mtime +30 -delete
      
    • 如需在 Docker 中执行:将备份脚本放入 pgAdmin 容器或通过宿主 crontab 调用 docker exec 执行容器内备份脚本。

四 恢复与灾难恢复

  • 常规恢复(图形界面):在 pgAdmin 中右键目标库 → Restore…,选择备份文件,按需设置 Sections(Pre/Data/Post)、Clean before restoreSingle transactionExit on error 等选项后执行。
  • 时间点恢复(PITR):
    • 前提:启用 WAL 归档(postgresql.conf):
      wal_level = replica
      archive_mode = on
      archive_command = 'cp %p /var/wal_archive/%f'
      
    • 步骤:先做基础备份(可用 pgAdmin 的服务器级备份或 pg_basebackup),恢复时选择基础备份并在恢复选项中设定 Recovery target timeRecovery target xid

五 监控 验证与常见注意事项

  • 监控与日志:记录每次备份的开始/结束时间与结果;对失败告警(邮件/IM)。
  • 定期验证:每月做一次恢复演练,抽样执行 pg_restore/psql 校验;使用 pgAdmin 的 Check 功能验证备份可用性。
  • 保留与容量:按策略清理过期备份,监控备份盘容量,避免写满导致备份失败。
  • 安全:对备份文件加密与访问控制;传输与存储均建议使用加密通道与隔离权限。
  • 配置备份:除数据库外,定期备份 pgAdmin 配置目录(~/.pgadmin4/) 与服务器端关键配置,确保平台级可恢复性。
  • 影响与窗口:备份对系统有一定负载,建议在业务低峰期执行,并持续监控资源使用。

0