首页主机资讯如何利用pgAdmin在Linux上进行数据备份与恢复

如何利用pgAdmin在Linux上进行数据备份与恢复

时间2025-11-24 10:48:03发布访客分类主机资讯浏览785
导读:在 Linux 上使用 pgAdmin 进行 PostgreSQL 备份与恢复 一 环境准备与备份策略 安装与连接:在 Linux 桌面或浏览器中打开 pgAdmin 4,新增服务器连接(主机、端口、维护数据库、用户名、密码),确保能正常...

在 Linux 上使用 pgAdmin 进行 PostgreSQL 备份与恢复

一 环境准备与备份策略

  • 安装与连接:在 Linux 桌面或浏览器中打开 pgAdmin 4,新增服务器连接(主机、端口、维护数据库、用户名、密码),确保能正常列出数据库对象。
  • 备份范围与周期:明确需要备份的对象(整库、单库、特定 Schema/表),结合业务 RPO/RTO 设定备份周期与保留策略。
  • 工具与方式:
    • 逻辑备份:pg_dump / pg_restore(适合跨版本迁移、单库/对象级恢复、细粒度选择)。
    • 物理备份:pg_basebackup(适合整机/集群级快速恢复、时间点恢复 PITR 的基座)。
  • 存储与合规:选择本地或云端存储,做好权限控制与定期校验(如校验和/还原演练)。

二 使用 pgAdmin 进行备份

  • 整库备份(图形界面)
    1. 在左侧树形导航中右键目标数据库,选择 备份…
    2. 在“备份”对话框中设置:
      • 文件名与保存位置(Linux 路径,如:/var/backups/mydb_20251124.sql.backup)。
      • 备份类型:仅结构、仅数据、结构与数据。
      • 格式:选择 纯文本 SQL(便于跨平台/审阅)或 自定义/TAR(便于 pg_restore 并行与选择性恢复)。
      • 选项:按需勾选“包含大对象(BLOB/CLOB)”“压缩”“角色/表空间随对象导出”等。
    3. 点击“备份”开始,完成后在指定目录查看备份文件。
  • 对象/数据导出(表格级)
    • 在表/视图上右键选择 导出…,可导出为 SQLCSV 等格式;CSV 适合数据交换与批量导入。
  • 命令行等价(便于脚本与自动化)
    • 纯文本 SQL:pg_dump -h localhost -U postgres -d mydb -f /var/backups/mydb.sql
    • 自定义归档:pg_dump -h localhost -U postgres -F c -b -v -f /var/backups/mydb.backup mydb

三 使用 pgAdmin 进行恢复

  • 整库恢复(图形界面)
    1. 若目标库不存在:先新建空库(注意 Owner/编码/表空间 与原库一致)。
    2. 右键目标库选择 恢复…,在对话框中选择备份文件并设置:
      • 角色/维护数据库、格式(SQL 脚本或自定义归档)。
      • 选项:是否“清理/创建对象”“仅数据/仅结构”“包含大对象”等。
    3. 点击“恢复”,完成后用查询或对象浏览验证。
  • 命令行等价(更灵活、可并行)
    • SQL 脚本:psql -h localhost -U postgres -d mydb -f /var/backups/mydb.sql
    • 自定义归档:pg_restore -h localhost -U postgres -d mydb -j 4 -v /var/backups/mydb.backup(-j 启用并行恢复)
  • 重要提示
    • 纯文本 SQL 脚本psql 恢复;自定义/TAR 归档pg_restore 恢复,二者不可混用。
    • 恢复到已存在库时,谨慎选择“清理/覆盖”选项,避免误删现网对象。

四 自动化与进阶方案

  • 定时备份(脚本 + cron)
    • 示例脚本(/usr/local/bin/pg_backup.sh):
      #!/usr/bin/env bash
      set -e
      BACKUP_DIR="/var/backups/postgresql"
      DB="mydb"
      USER="postgres"
      TS=$(date +%F_%H%M%S)
      mkdir -p "$BACKUP_DIR"
      pg_dump -h localhost -U "$USER" -F c -b -v -f "$BACKUP_DIR/${
      DB}
      _${
      TS}
      .backup" "$DB"
      # 可选:清理 7 天前备份
      find "$BACKUP_DIR" -name "${
      DB}
          _*.backup" -mtime +7 -delete
      
    • 加入定时任务:0 2 * * * /usr/local/bin/pg_backup.sh
  • 时间点恢复 PITR(物理备份 + WAL 归档)
    • 前提:启用 WAL 归档(postgresql.conf):wal_level=replicaarchive_mode=onarchive_command='cp %p /var/lib/postgresql/archive/%f'
    • 备份:pg_basebackup -h localhost -U postgres -D /var/backups/base_20251124 -P -X stream -R(-R 自动写入 recovery 配置)。
    • 恢复到指定时间点:在 $PGDATA 下创建 recovery.signal,并配置 restore_commandrecovery_target_time,然后启动数据库,达到目标时点后自动切换为读写。
  • 工具补充:pg_rman 支持在线全量/增量备份与 PITR,适合有严格 RPO/RTO 的场景。

五 常见问题与最佳实践

  • 版本与兼容性:尽量保持 备份端与恢复端 PostgreSQL 大版本一致;跨小版本通常可用自定义归档恢复,但需充分演练。
  • 角色与权限:备份/恢复使用的数据库角色需具备相应权限;若脚本中指定角色,请确保目标库中存在同名角色。
  • 一致性:备份期间尽量避免大规模 DDL;必要时在低峰期执行,或使用物理备份减少业务影响。
  • 校验与演练:定期做 还原演练校验和 验证;对关键库保留至少 2–3 个 历史备份。
  • 安全:备份文件含敏感数据,务必设置 文件系统权限传输加密(如 scp/sftp/对象存储签名)。
  • 区分对象:pgAdmin 是管理工具,其自身配置与元数据与 PostgreSQL 数据库不同;迁移/备份 pgAdmin 配置 需另行处理(如 /etc/pgadmin/var/lib/pgadmin 等目录)。

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


若转载请注明出处: 如何利用pgAdmin在Linux上进行数据备份与恢复
本文地址: https://pptw.com/jishu/754239.html
如何通过pgAdmin在Linux上进行数据库监控 Debian Apache怎样优化网站的加载速度

游客 回复需填写必要信息