温馨提示×

怎样迁移debian postgresql库

小樊
46
2026-09-20 18:14:23
栏目: 云计算

在 Debian 上迁移 PostgreSQL 数据库,常见有同版本迁移、跨版本迁移、同机/跨机迁移几种场景。下面按最常用、最稳妥的方式给你说明。


一、迁移前准备

1. 查看当前版本

psql --version
pg_lsclusters

2. 备份(非常重要)

pg_dump -U 用户名 数据库名 > db.sql

或整库集群备份:

pg_dumpall -U postgres > all.sql

二、同机不同版本迁移(Debian 常见)

Debian 常通过 pg_lsclusters 管理多个版本。

示例:从 13 迁移到 15

1. 安装新版本

apt install postgresql-15

2. 停止旧集群

pg_ctlcluster 13 main stop

3. 使用 pg_upgrade(推荐)

/usr/lib/postgresql/15/bin/pg_upgrade \
  -b /usr/lib/postgresql/13/bin \
  -B /usr/lib/postgresql/15/bin \
  -d /var/lib/postgresql/13/main \
  -D /var/lib/postgresql/15/main \
  -U postgres

4. 启动新版本

pg_ctlcluster 15 main start

三、跨服务器迁移(最通用)

源服务器

pg_dump -h 旧IP -U 用户 数据库名 > db.sql

目标服务器

createdb -U postgres 数据库名
psql -U postgres 数据库名 < db.sql

如果是大库,建议:

pg_dump -Fc 数据库名 > db.dump
pg_restore -U postgres -d 数据库名 db.dump

四、使用逻辑复制(不停机)

适合生产环境零停机。

  1. 源库配置 postgresql.conf
wal_level = logical
  1. 创建发布
CREATE PUBLICATION pub FOR ALL TABLES;
  1. 目标库订阅
CREATE SUBSCRIPTION sub
CONNECTION 'host=源IP dbname=库 user=用户'
PUBLICATION pub;

五、注意事项

  • ✅ 迁移前务必备份
  • ✅ 跨大版本必须用 pg_upgrade 或 dump/restore
  • ✅ 注意 postgresql.conf / pg_hba.conf 配置
  • ✅ 扩展(如 PostGIS)需目标库先安装

如果你能告诉我:

  • 是否同机/跨机
  • 是否跨版本
  • 数据量大小

我可以给你更精确的命令。

0 踩