PostgreSQL 迁移数据库常见有几种方式,下面按使用场景给你系统讲一下,并附上常用命令。
pg_dump + psqlpg_dump -h 原主机 -U 用户名 -d 原数据库名 -F c -f db.dump
-F c:自定义格式(推荐,支持并行恢复)pg_dump -h 原主机 -U 用户名 -d 原数据库名 > db.sql
# 自定义格式
pg_restore -h 新主机 -U 用户名 -d 新数据库名 db.dump
# SQL 格式
psql -h 新主机 -U 用户名 -d 新数据库名 < db.sql
✅ 适合:
pg_dumpallpg_dumpall -h 原主机 -U 用户名 > all.sql
psql -h 新主机 -U 用户名 -f all.sql
✅ 适合:
data 目录# 原机
pg_ctl stop
# 拷贝
rsync -av /var/lib/pgsql/data/ 新机:/var/lib/pgsql/data/
# 新机
pg_ctl start
⚠️ 要求:
wal_level = logical
CREATE PUBLICATION my_pub FOR ALL TABLES;
CREATE SUBSCRIPTION my_sub
CONNECTION 'host=源机 dbname=db user=用户'
PUBLICATION my_pub;
✅ 适合:
✅ 先建好目标库和用户
✅ 注意编码(UTF-8)
✅ 大表加索引慢,可先导数据后建索引
✅ 权限、序列、触发器都要检查
如果你告诉我:
我可以给你最合适的迁移方案 + 具体命令。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。