在Ubuntu上进行PostgreSQL数据迁移,常用方法包括使用命令行工具和图形化工具,以下是具体步骤及注意事项:
pg_dump 和 pg_restore(推荐)导出数据
pg_dump -U 用户名 -h 主机地址 -p 端口 -F c -b -v -f /路径/备份文件.dump 数据库名
-F c:自定义格式(支持压缩和并行恢复)。-b:包含大对象(如二进制数据)。pg_dump -U postgres -h localhost -p 5432 -F c -b -v -f /backup/db.dump mydb。导入数据
pg_restore -U 用户名 -h 主机地址 -d 目标数据库名 -v /路径/备份文件.dump
-C 参数自动创建。pg_restore -U postgres -d newdb -v /backup/db.dump。psql 导入SQL脚本导出为SQL文件
pg_dump -U 用户名 -h 主机地址 -p 端口 -F p -b -v -f /路径/备份文件.sql 数据库名
-F p:生成纯文本SQL脚本。导入SQL文件
psql -U 用户名 -h 主机地址 -d 目标数据库名 -f /路径/备份文件.sql
COPY 命令(适合单表或结构化数据)COPY 表名 TO '/路径/文件.csv' WITH CSV HEADER;
COPY 表名 FROM '/路径/文件.csv' WITH CSV HEADER;
pg_restore -j 并行恢复或分阶段处理。scp)。pg_dump 的 -t 参数指定表名。| 场景 | 命令示例 | 
|---|---|
| 备份整个数据库 | pg_dump -U postgres -h localhost -F c -b -v -f /backup/db.dump mydb | 
| 恢复整个数据库 | pg_restore -U postgres -d newdb -v /backup/db.dump | 
| 备份单表 | pg_dump -U postgres -h localhost -t users -F c -b -v -f /backup/users.dump mydb | 
| 从SQL文件导入 | psql -U postgres -d newdb -f /backup/schema.sql | 
更多细节可参考官方文档:PostgreSQL pg_dump/pg_restore。