You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL仅迁移数据至另一服务器及多表迁移方法问询

PostgreSQL跨服务器仅迁移数据的解决方案

一、仅迁移数据(不复制表结构/索引等)

你原来的命令带了-C参数会自动创建数据库,且默认导出表结构+数据。要只迁移数据,需用--data-only参数并去掉-C:

单表数据迁移

如果仅迁移某一张表的数据,加上-t指定表名:

pg_dump -h localhost -U localuser --data-only -t tablename dbname | psql -h remotehost -U remoteuser dbname

关键注意事项

  • 目标服务器的dbname中必须已经存在完全一致的表结构(包括字段类型、约束、主键等),否则数据无法正常插入。
  • 确保localuser拥有源库对应表的SELECT权限,remoteuser拥有目标库对应表的INSERT权限。

二、迁移所有表的数据到Server B

同样使用--data-only参数,不指定具体表名,直接导出整个数据库的所有表数据:

pg_dump -h localhost -U localuser --data-only dbname | psql -h remotehost -U remoteuser dbname

实用优化建议

  • 若数据量较大,优先选择“本地导出→传输文件→远程导入”的方式,避免网络中断导致迁移失败:
    # 源服务器导出所有表数据到本地文件
    pg_dump -h localhost -U localuser --data-only dbname > all_tables_data.sql
    
    # 通过scp将文件传输到目标服务器(替换为实际路径)
    scp all_tables_data.sql remoteuser@remotehost:/tmp/
    
    # 目标服务器导入数据
    psql -U remoteuser dbname < /tmp/all_tables_data.sql
    
  • 导出过程中如果源库有写入操作,可能造成数据不一致,建议在业务低峰期执行,或添加--lock-wait-timeout=60000参数(等待锁60秒,减少对业务的影响)。

内容的提问来源于stack exchange,提问作者DS89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 20:27:18