温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

postgresql怎么迁移数据库

发布时间:2026-09-27 18:33:09 来源:亿速云 阅读:86 作者:小樊 栏目:数据库

PostgreSQL 迁移数据库常见有几种方式,下面按使用场景给你系统讲一下,并附上常用命令。


一、同版本 / 跨版本(最常用):pg_dump + psql

1️⃣ 导出原数据库

pg_dump -h 原主机 -U 用户名 -d 原数据库名 -F c -f db.dump
  • -F c:自定义格式(推荐,支持并行恢复)
  • 也可导出为 SQL:
pg_dump -h 原主机 -U 用户名 -d 原数据库名 > db.sql

2️⃣ 导入到目标数据库

# 自定义格式
pg_restore -h 新主机 -U 用户名 -d 新数据库名 db.dump

# SQL 格式
psql -h 新主机 -U 用户名 -d 新数据库名 < db.sql

✅ 适合:

  • 跨服务器
  • 跨版本(一般向上兼容)
  • 单库迁移

二、整库复制(同版本推荐):pg_dumpall

pg_dumpall -h 原主机 -U 用户名 > all.sql
psql -h 新主机 -U 用户名 -f all.sql

✅ 适合:

  • 迁移所有库 + 用户 + 权限
  • 整机迁移

三、物理迁移(大库 / 停机迁移)

方法:文件级拷贝

  1. 停止 PostgreSQL
  2. 拷贝 data 目录
  3. 启动新实例
# 原机
pg_ctl stop

# 拷贝
rsync -av /var/lib/pgsql/data/ 新机:/var/lib/pgsql/data/

# 新机
pg_ctl start

⚠️ 要求:

  • PostgreSQL 大版本必须一致
  • 操作系统架构一致

四、在线迁移(不停机):逻辑复制

1️⃣ 源库配置

wal_level = logical

2️⃣ 创建发布

CREATE PUBLICATION my_pub FOR ALL TABLES;

3️⃣ 目标库订阅

CREATE SUBSCRIPTION my_sub
CONNECTION 'host=源机 dbname=db user=用户'
PUBLICATION my_pub;

✅ 适合:

  • 业务不能停
  • 增量同步

五、使用工具(图形化)

  • pgAdmin 4
    • 备份 / 恢复
  • Navicat
  • DBeaver

六、常见注意事项

✅ 先建好目标库和用户
✅ 注意编码(UTF-8)
✅ 大表加索引慢,可先导数据后建索引
✅ 权限、序列、触发器都要检查


如果你告诉我:

  • 是否跨服务器
  • 是否同版本
  • 能否停机
  • 数据量大小

我可以给你最合适的迁移方案 + 具体命令。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手