PostgreSQL 在 CentOS 的数据迁移策略
一、策略总览与选型
二、常用方法步骤要点
逻辑导出导入(单库/全库)
pg_dump -U postgres -Fc -f dbname.dump dbnamepg_restore -U postgres -d dbname dbname.dumppg_dumpall -U postgres -f all.dumppsql -U postgres -f all.dump(或按库分批导入)物理迁移数据目录(同主版本)
systemctl stop postgresql(或 postgresql-cp -rp /var/lib/pgsql/data /new/data/dirchown -R postgres:postgres /new/data/dir && chmod 700 /new/data/dirsystemctl daemon-reload && systemctl start postgresql逻辑复制迁移(跨大版本近零停机)
wal_level = logical,max_replication_slots 充足CREATE PUBLICATION mig_pub FOR ALL TABLES;ALTER TABLE t REPLICA IDENTITY FULL;pg_dump -s 导出结构)CREATE SUBSCRIPTION mig_sub CONNECTION 'host=old_host ...' PUBLICATION mig_pub;异构迁移(MySQL/SQL Server/Oracle → PostgreSQL)
pgloader mysql://user:pass@host/db postgresql://user:pass@host/db(支持类型映射、并发加载、转换规则)。三、迁移前后检查清单
四、场景化推荐