温馨提示×

Linux pgAdmin怎样进行迁移

小樊
33
2025-11-30 03:09:39
栏目: 智能运维

Linux 上 pgAdmin 迁移指南

迁移目标与准备

  • 明确迁移对象:
    • 迁移 pgAdmin 4 的配置与元数据(服务器列表、用户、偏好等)。
    • 迁移 被管理的 PostgreSQL 数据库(业务数据)。
  • 版本与目录要点:
    • 常见安装方式及关键目录(以实际环境为准):
      • RPM/YUM(httpd/Wsgi):配置 /etc/httpd/conf.d/pgadmin4.conf,数据 /var/lib/pgadmin4/,日志 /var/log/pgadmin4/
      • DEB/APT(桌面版):配置与数据常在用户目录 ~/.pgadmin/
    • 建议先停服务再迁移,避免运行时文件变更导致不一致:例如 systemctl stop httpd 或停止桌面会话。
    • 预估空间并准备传输工具(如 rsync/scp),确保目标机器磁盘与权限满足要求。

迁移 pgAdmin 4 的配置与元数据

  • 方式一(同版本直拷,适用于 RPM/YUM 与 DEB/APT)
    1. 停服务:systemctl stop httpd(或暂停桌面会话)。
    2. 打包并复制关键目录:
      • RPM/YUM:
        tar czf pgadmin4-data.tar.gz /var/lib/pgadmin4 /var/log/pgadmin4 /etc/httpd/conf.d/pgadmin4.conf
        scp pgadmin4-data.tar.gz user@new:/tmp
        在目标机:tar xzf /tmp/pgadmin4-data.tar.gz -C /
      • DEB/APT:
        tar czf pgadmin4-home.tar.gz ~/.pgadmin
        scp pgadmin4-home.tar.gz user@new:~
        在目标机:tar xzf ~/pgadmin4-home.tar.gz -C ~
    3. 如目录或 SELinux 标签变更,修正所有权与上下文:
      chown -R apache:apache /var/lib/pgadmin4 /var/log/pgadmin4(RPM/YUM)
      chcon -R -t httpd_sys_rw_content_t /var/lib/pgadmin4 /var/log/pgadmin4(RHEL/CentOS SELinux)
    4. 启动服务:systemctl start httpd;或在桌面版重新登录。
    5. 登录验证服务器列表、登录账号与偏好是否完整。
  • 方式二(跨版本或无法直拷)
    • 在新环境全新安装同版本 pgAdmin 4,首次登录后导出连接/服务器定义为 JSON(若界面提供),或手动在新环境重新添加服务器连接;偏好设置按需重新配置。

迁移被管理的 PostgreSQL 数据库

  • 逻辑迁移(推荐,跨版本/跨平台通用)
    1. 在源库导出:
      • 自定义格式(便于后续选择性恢复与并行):
        pg_dump -U username -h hostname -p port -F c -b -v -f backup.dump database_name
      • 纯 SQL 脚本:
        pg_dump -U username -h hostname -p port database_name > backup.sql
    2. 将备份传至目标机:scp backup.* user@new:/path/
    3. 在目标库恢复:
      • 自定义格式:
        pg_restore -U username -h hostname -p port -d database_name -v backup.dump
      • SQL 脚本:
        psql -U username -h hostname -p port -d database_name -f backup.sql
    4. 校验对象数量、数据一致性(如行数、重要表抽样)。
  • 物理迁移(仅限同版本、同平台、停机窗口充足)
    1. 源库停写:pg_ctl stop 或 systemctl stop postgresql
    2. 拷贝数据目录(Data Directory)到目标机相同路径或配置到新路径
    3. 目标库启动并校验:pg_ctl start;检查日志与数据库可用性。

验证与常见问题

  • 验证清单
    • pgAdmin 能正常登录,服务器树、登录角色、驱动与偏好设置完整。
    • 各业务库可连接,关键表数据一致(数量、抽样校验)。
    • 日志无异常:/var/log/pgadmin4/*.log、PostgreSQL 服务日志。
  • 常见问题与处理
    • 版本不一致导致元数据或恢复失败:尽量保持 pgAdmin 4 与目标 PostgreSQL 的版本一致或做充分演练。
    • 权限/所有权错误:RPM/YUM 下确保 apache:apache 拥有 /var/lib/pgadmin4 与 /var/log/pgadmin4;必要时 restorecon/chcon 修正 SELinux。
    • 直拷后 pgAdmin 页面 403/500:检查 WSGI 配置、目录权限与 SELinux 上下文,必要时重启 httpd。
    • 大对象(BLOB)未恢复:导出时使用 -b,恢复时使用 pg_restore 的相应选项。

0