以下是Ubuntu下PostgreSQL数据库迁移的常用技巧及工具,涵盖不同场景:
备份源数据库
pg_dump -U 用户名 -h 源主机 -p 端口 -F c -b -v -f /path/backup.dump 数据库名
(-F c
为自定义格式,保留权限和依赖关系)
恢复到目标数据库
pg_restore -U 用户名 -h 目标主机 -p 端口 -d 目标数据库 /path/backup.dump
(支持覆盖现有数据,需提前创建目标库结构)
pg_dumpall -U postgres -f /path/all_databases.sql
psql -U postgres -f /path/all_databases.sql
(需先安装新版本PostgreSQL,适用于大版本升级)sudo apt-get install pgsync
pgsync.yml
:指定源/目标库、排除表等。pgsync
sudo apt-get install pgloader
mysql_to_pg.load
):LOAD DATABASE
FROM mysql://user:pass@host/db
INTO postgresql://user:pass@host/db
pgloader mysql_to_pg.load
权限与安全
CREATE
、INSERT
)。sslmode=require
)。版本兼容性
pg_upgrade
或pg_dump
迁移。验证与回滚
pg_checksums
验证数据完整性。工具选择建议:
pg_dump/pg_restore
或pgAdmin。pgsync
。pgloader
。参考资料: