温馨提示×

linux pgadmin怎么迁移数据

小樊
41
2026-10-12 07:04:22
栏目: 智能运维

在 Linux 上通过 pgAdmin 迁移 PostgreSQL 数据,常见有几种方式,按“是否同版本 / 是否跨服务器”给你最实用的做法。


一、同服务器 / 同版本(最简单)

方法 1:pgAdmin 自带「Backup / Restore」

适合:库级、表级迁移

导出(Backup)

  1. 打开 pgAdmin
  2. 左侧找到数据库 → 右键 Backup…
  3. 设置:
    • Format:Custom(推荐)
    • Filename:/tmp/db.backup
  4. 点击 Backup

导入(Restore)

  1. 目标库右键 Restore…
  2. 选择刚才的 .backup 文件
  3. 点击 Restore

✅ 优点:图形化、简单
❌ 缺点:大库较慢


二、跨服务器迁移(Linux → Linux)

方法 2:Backup + 拷贝 + Restore

适合:服务器之间迁移

# 源服务器
pg_dump -U postgres -Fc dbname > dbname.backup

# 拷贝到目标服务器
scp dbname.backup user@target:/tmp/

# 目标服务器
pg_restore -U postgres -d dbname /tmp/dbname.backup

如果你必须用 pgAdmin:

  • 在源服务器 pgAdmin 备份
  • 把文件 scp 到目标机器
  • 目标机器 pgAdmin 恢复

三、只迁移部分表 / 数据

方法 3:pgAdmin 导出 SQL

  1. 表 → 右键 Backup
  2. Format:`Plain**
  3. 勾选:
    • Only data / Only schema
  4. 在目标库执行 SQL

四、大型数据库推荐方式(生产环境)

方法 4:物理迁移(快)

# 停库或低峰期
pg_basebackup -D /data/new -h old_host -U replicator

⚠️ 不通过 pgAdmin,但最稳最快


五、常见坑(Linux + pgAdmin)

  1. 权限问题
    chown postgres:postgres /tmp/db.backup
    
  2. 路径必须 pgAdmin 能访问
    • 用 /tmp 最安全
  3. 字符集不一致
    • 源和目标数据库 encoding 要一致

六、你可以告诉我:

  • 是 同服务器还是跨服务器?
  • 数据量多大?
  • 是否 跨 PostgreSQL 大版本(如 12 → 16)?

我可以直接给你最适合你场景的命令或 pgAdmin 操作步骤。

0 踩