温馨提示×

linux pgadmin怎样迁移数据

小樊
48
2026-09-15 15:35:22
栏目: 智能运维

在 Linux 下使用 pgAdmin 迁移 PostgreSQL 数据,常见有几种方式,取决于你是整库迁移、部分表迁移,还是跨服务器迁移。下面按使用频率和场景给你说明。


一、使用 pgAdmin 自带功能迁移(图形界面)

1️⃣ 整库迁移(同构数据库最方便)

方法:Backup + Restore

源库导出

  1. 打开 pgAdmin
  2. 右键数据库 → Backup
  3. 设置:
    • Format:Custom 或 Directory(推荐 Custom)
    • Filename:如 /tmp/db_backup.dump
  4. 点击 Backup

目标库导入

  1. 在目标服务器 pgAdmin 中
  2. 右键目标数据库 → Restore
  3. 选择刚才的 .dump 文件
  4. 点击 Restore

✅ 适合:

  • 同版本 PostgreSQL
  • 整库迁移(结构 + 数据)

2️⃣ 只迁移部分表

方法:Schema 级别 Backup

  1. 右键 Schema(如 public)
  2. Backup
  3. 在选项中勾选需要的表
  4. 在目标库 Restore

3️⃣ 跨版本 PostgreSQL(注意)

⚠️ 不推荐高版本 → 低版本
✅ 低版本 → 高版本一般没问题

如果版本差距大:

  • 使用 Plain SQL 格式
  • 或只用 pg_dump 命令行

二、使用命令行(Linux 更稳,推荐)

pgAdmin 底层也是调用这些命令。

导出

pg_dump -U username -h localhost -F c -b -v -f db.dump dbname

导入

pg_restore -U username -h localhost -d dbname -v db.dump

三、从其他数据库迁移到 PostgreSQL(如 MySQL)

pgAdmin 不能直接迁 需要:

  • ora2pg(Oracle)
  • mysql_fdw + 脚本
  • 或先导出 CSV / SQL 再导入

四、只迁移数据不迁移结构

使用 CSV

  1. 表右键 → Export
  2. 格式 CSV
  3. 目标表右键 → Import

五、常见坑(Linux 下)

❌ 权限问题

Permission denied

解决:

chmod 777 /tmp/db.dump

或放到当前用户目录

❌ 字符集不一致
确保:

SHOW server_encoding;

六、总结推荐

场景 推荐方式
整库同版本 pgAdmin Backup/Restore
大库 命令行 pg_dump
跨服务器 dump 文件 + scp
部分表 Schema Backup
异构库 工具 + 脚本

如果你能告诉我:

  • 源 / 目标 PostgreSQL 版本
  • 是否跨服务器
  • 数据量大小

我可以直接给你最适合你当前环境的迁移命令或步骤。

0 踩