ubuntu pgadmin如何迁移数据
导读:Ubuntu 下使用 pgAdmin 迁移 PostgreSQL 数据的实用方案 一、先明确迁移对象 迁移数据库内容:把业务数据从一个 PostgreSQL 实例迁移到另一个实例(同版本或跨版本),常用工具是 pg_dump / pg_r...
Ubuntu 下使用 pgAdmin 迁移 PostgreSQL 数据的实用方案
一、先明确迁移对象
- 迁移数据库内容:把业务数据从一个 PostgreSQL 实例迁移到另一个实例(同版本或跨版本),常用工具是 pg_dump / pg_restore,pgAdmin 主要用来连接源/目标库、发起导出与导入。
- 迁移 pgAdmin 配置与服务器书签:把 pgAdmin 4 的账户、服务器组、连接信息等从一台 Ubuntu 迁移到另一台,涉及其配置与“存储”目录的迁移。
二、迁移数据库内容的标准流程(pg_dump + pg_restore)
- 步骤1 准备
- 确保网络互通,目标库已创建且版本与源库大版本一致(避免兼容性问题)。如使用云上实例,提前配置白名单、创建高权限账号、获取连接地址与端口。
- 步骤2 导出源库
- 推荐按库导出为自定义格式(-F c),便于后续并行恢复与选择性恢复:
- pg_dump -h 源主机 -U 源用户 -p 源端口 -d 源库名 -F c -f 源库.dump
- 推荐按库导出为自定义格式(-F c),便于后续并行恢复与选择性恢复:
- 步骤3 在目标库创建空库(保持编码/排序规则一致)
- createdb -h 目标主机 -U 目标用户 -p 目标端口 -T template0 目标库名
- 步骤4 导入到目标库
- pg_restore -h 目标主机 -U 目标用户 -p 目标端口 -d 目标库名 -j 并行数 源库.dump
- 步骤5 校验
- 对比行数/校验和、抽样查询关键业务表、检查视图/函数/触发器是否正常。
- 补充 迁移角色与全局对象
- 如需迁移用户/角色/表空间等全局对象,可在源库执行:pg_dumpall -g > roles.sql,在目标库 psql -f roles.sql 执行。
- 说明
- 以上流程适用于自建 PostgreSQL → 自建/云上 PostgreSQL的迁移;若需不停机或跨大版本升级,可考虑使用专业同步/升级工具或服务。上述做法与官方实践一致,包含版本一致性与白名单、账号准备等要点。
三、使用 pgAdmin 执行导出与导入
- 连接源与目标
- 在 pgAdmin 中分别“注册服务器”,填写源库与目标库的连接信息(主机、端口、数据库、用户、密码)。
- 导出(备份)数据库
- 在左侧对象树中右键源数据库 → 备份(Backup) → 选择格式 Custom(.dump) → 指定文件路径 → 备份。该操作本质调用 pg_dump。
- 导入(恢复)数据库
- 先在目标实例创建空库(保持与源库一致的 Encoding/Collate/Ctype),然后在目标数据库上右键 → 恢复(Restore) → 选择上一步的 .dump 文件 → 选择“角色”映射 → 开始恢复。该操作本质调用 pg_restore。
- 适用场景
- 适合单库/少量库迁移;若需整库/多库或增量同步,建议改用 DTS/DataWorks/Flink CDC 等专业工具或服务。
四、迁移 pgAdmin 4 的配置与书签(服务器模式)
- 适用前提
- 使用 pgAdmin 4 服务器模式(常见于 apt 安装后通过脚本配置 Web 访问),其配置与“存储”(如会话、用户文件等)位于固定目录,例如:/var/lib/pgadmin4/、/var/log/pgadmin4/。
- 操作步骤
- 停止服务:sudo systemctl stop apache2 或 sudo systemctl stop pgadmin4(视安装方式而定)
- 迁移目录:sudo rsync -a /var/lib/pgadmin4/ 目标主机:/var/lib/pgadmin4/
- 迁移日志(可选):sudo rsync -a /var/log/pgadmin4/ 目标主机:/var/log/pgadmin4/
- 修正所有权(务必与目标系统 Web 服务运行用户一致,常见为 www-data):
- sudo chown -R www-data:www-data /var/lib/pgadmin4 /var/log/pgadmin4
- 启动服务:sudo systemctl start apache2 或 sudo systemctl start pgadmin4
- 访问验证:http://目标主机/pgadmin4,确认账户、服务器树与历史会话是否正常。
- 说明
- 目录路径与“服务器模式”下的部署方式有关;若使用桌面模式,迁移策略不同(通常为用户目录下的配置)。上述目录与服务器模式部署方式可参考 Ubuntu 上 pgAdmin 4 的安装与配置说明。
五、常见问题与排错要点
- 版本不一致导致恢复失败
- 建议源/目标 PostgreSQL 大版本一致;若需升级,先迁移再按官方流程升级目标库。
- 权限/白名单问题
- 目标库需提前放行来源 IP 白名单,并使用具备足够权限的账号执行恢复(如超级用户或具备 CREATEDB/CREATEROLE 的账号)。
- 编码/排序规则不一致
- 创建目标库时显式指定与源库一致的 Encoding/Collate/Ctype,避免因 locale 不一致导致索引/比较行为异常。
- 大对象(LOB)与并行恢复
- 使用 -F c 与 -j N 可提升大库恢复速度;如遇到大对象问题,可尝试降低并行度或分批恢复。
- 角色未迁移导致权限错乱
- 使用 pg_dumpall -g 导出角色/权限并在目标库执行,确保属主与权限一致。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu pgadmin如何迁移数据
本文地址: https://pptw.com/jishu/786378.html
