首页主机资讯如何备份Ubuntu上的pgAdmin数据库

如何备份Ubuntu上的pgAdmin数据库

时间2025-12-16 13:04:04发布访客分类主机资讯浏览1079
导读:Ubuntu 上备份 pgAdmin 管理的 PostgreSQL 数据库 一 备份方式总览 使用 pgAdmin 4 图形界面执行备份,适合临时或一次性操作,支持导出为多种格式。 使用 pg_dump/pg_restore 命令行,适合...

Ubuntu 上备份 pgAdmin 管理的 PostgreSQL 数据库

一 备份方式总览

  • 使用 pgAdmin 4 图形界面执行备份,适合临时或一次性操作,支持导出为多种格式。
  • 使用 pg_dump/pg_restore 命令行,适合脚本化和自动化,便于纳入 Cron 定时任务与保留策略管理。
  • 备份 pgAdmin 4 配置与服务器清单(不是业务数据):配置文件位于用户主目录 ~/.pgadmin4/,可定期打包留存,便于迁移或重装后快速恢复连接信息。

二 使用 pgAdmin 4 图形界面备份

  • 连接目标服务器后,在左侧对象树中右键目标数据库 → Backup…
  • 关键选项建议:
    • Format:优先选择 Custom(.backup) 便于后续选择性恢复;需要跨平台或便于查看时用 Plain(.sql);超大数据可考虑 Directory(并行)
    • 勾选 Blobs 以包含大对象(如二进制数据)。
    • 指定输出目录与文件名,点击 Backup 开始。完成后在界面 Processes 可查看完整执行的 pg_dump 命令与日志,便于排错与沉淀脚本。

三 使用命令行备份与自动化

  • 常用命令模板
    • 自定义格式(推荐):
      pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f /backups/mydb_$(date +%F).dump mydb
    • 纯文本 SQL 脚本:
      pg_dump -h localhost -p 5432 -U postgres -F p -f /backups/mydb_$(date +%F).sql mydb
    • 还原对应:
      • 自定义/Tar:pg_restore -h localhost -p 5432 -U postgres -d mydb /backups/mydb_2025-12-16.dump
      • 纯文本:createdb -h localhost -p 5432 -U postgres mydb & & psql -h localhost -p 5432 -U postgres -d mydb -f /backups/mydb_2025-12-16.sql
  • 自动化脚本与定时任务
    • 示例脚本 /usr/local/bin/pg_backup.sh(使用自定义格式与保留策略):
      #!/usr/bin/env bash
      set -Eeuo pipefail
      source /data/backup_config.env   # DB_HOST, DB_PORT, DB_USER, DB_NAME, BACKUP_DIR, RETENTION_DAYS, LOG_FILE
      TIMESTAMP=$(date +%Y%m%d_%H%M%S)
      BACKUP_FILE="${
      BACKUP_DIR}
      /${
      DB_NAME}
      _${
      TIMESTAMP}
      .dump"
      
      mkdir -p "$BACKUP_DIR"
      export PGPASSWORD="${
      DB_PASSWORD:-}
          "
      
      pg_dump --host="$DB_HOST" --port="$DB_PORT" --username="$DB_USER" \
        --format=c --blobs --verbose --file="$BACKUP_FILE" "$DB_NAME"
      
      echo "[$(date)] Backup completed: $BACKUP_FILE (size: $(stat -c%s "$BACKUP_FILE"))" >
          >
       "$LOG_FILE"
      # 清理旧备份
      find "$BACKUP_DIR" -name "${
      DB_NAME}
          _*.dump" -mtime +"$RETENTION_DAYS" -delete
      
    • 定时任务(每天 02:00 执行):
      0 2 * * * /usr/local/bin/pg_backup.sh > > /var/log/pg_cron.log 2> & 1
  • 大型库优化
    • 使用 Directory 格式(–format=d) 并配合 –jobs=N 并行导出/导入,显著提升速度与恢复效率(pg_restore 同样支持 --jobs)。

四 还原与验证

  • 自定义/Tar 备份用 pg_restore;纯文本备份用 psql 执行 SQL 脚本。
  • 还原前准备:目标库需存在(pg_restore 可用 –create 创建库),必要时先停止应用以避免写入冲突。
  • 定期恢复演练(示例):
    • createdb -h localhost -p 5432 -U postgres test_restore
    • pg_restore -h localhost -p 5432 -U postgres -d test_restore --verbose /backups/mydb_*.dump
    • psql -h localhost -p 5432 -U postgres -d test_restore -c “SELECT COUNT(*) FROM important_table; ”
    • dropdb -h localhost -p 5432 -U postgres test_restore
  • 若备份包含文件系统附件(如某些应用将文件存在数据目录),需另行备份相应目录并在恢复后校验权限与归属。

五 备份策略与运维建议

  • 保留策略:按业务重要性设置保留天数(如 7/30 天),脚本中自动清理过期备份。
  • 安全与合规:备份文件含敏感数据,建议 加密 并存放于 离线或云存储;限制访问权限,传输使用 SCP/SFTP/TLS
  • 监控与告警:记录 日志备份大小,异常缩小或失败触发 邮件/企业微信/钉钉 告警。
  • 时间点恢复(进阶):启用 WAL 归档pg_basebackup,实现 PITR(时间点恢复),与日常逻辑备份互为补充。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何备份Ubuntu上的pgAdmin数据库
本文地址: https://pptw.com/jishu/772729.html
pgAdmin在Ubuntu上如何进行用户管理 Ubuntu系统下如何设置pgAdmin自动启动

游客 回复需填写必要信息