温馨提示×

Ubuntu PgAdmin如何导出和导入数据

小樊
50
2025-11-16 10:13:00
栏目: 智能运维

Ubuntu 下使用 pgAdmin 导出与导入数据

一 图形化操作 Backup Restore 与 Import CSV

  • 导出
    • 在左侧树形导航中连接到服务器,右键目标数据库,选择Backup…
    • 在弹窗中设置:
      • Format:常用为Custom(.dump,支持压缩)Plain(.sql)Directory(目录格式)
      • Filename:导出路径,例如:/home/user/db_backup.dump
      • 切换到Options可设置Compression(压缩级别);自定义格式本身使用 zlib 压缩,适合跨版本迁移与保留依赖。
  • 导入
    • 先创建空的目标库(含所需扩展,如 PostGIS),右键目标库选择Restore…,指定备份文件(如 .dump),选择格式并确认执行。
    • 对于CSV/文本数据:展开目标 Schema → Tables,右键表选择Import/Export…,在向导中选择文件、设置Delimiter(分隔符)Header(是否有列名)Encoding(编码)、以及目标 Schema/Table,开始导入。
  • 适用场景
    • 整库/整表迁移与备份用 Backup/Restore;单表或查询结果的数据交换用 Import/Export CSV

二 命令行方式 pg_dump pg_restore 与 psql

  • 导出整库为自定义格式(推荐,便于迁移与压缩)
    • 命令:pg_dump -h 地址 -p 端口 -U 用户名 -F c -b -v -f /path/backup.dump 数据库名
    • 说明:-F c 为自定义格式,保留权限与依赖;适合跨版本与跨平台。
  • 导入自定义格式备份
    • 命令:pg_restore -U 用户名 -h 目标主机 -p 端口 -d 目标数据库 /path/backup.dump
    • 说明:恢复前需先创建目标库;如需覆盖,可先清理或在恢复选项中处理。
  • 导出为 SQL 脚本(便于审阅/版本控制)
    • 命令:pg_dump -h 地址 -p 端口 -U 用户名 -f /path/backup.sql 数据库名
    • 导入:psql -U 用户名 -d 目标数据库 -f /path/backup.sql
    • 说明:适合小体量或需要纯 SQL 的场景。
  • 导出/导入单表
    • 导出表:pg_dump -h 地址 -p 端口 -U 用户名 -t 表名 -f /path/table.sql 数据库名
    • 导入表:先创建表结构,再用 psql 执行 SQL 或使用 COPY 导入数据。

三 CSV 导入导出的 SQL 方法

  • 从 CSV 导入到表
    • 示例:COPY your_table FROM '/path/to/file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8');
    • 说明:文件路径为服务器侧路径;客户端导入可用 \copy 读取本地文件。
  • 从表/查询结果导出为 CSV
    • 示例:COPY (SELECT * FROM your_table) TO '/path/to/file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',', ENCODING 'UTF8');
    • 说明:在 pgAdmin Query Tool 中执行后,可用工具栏的Export将结果集导出为 CSV/SQL 等。

四 常见问题与实用建议

  • 权限与安全
    • 执行导入/恢复的用户需具备相应权限(如 CREATE、INSERT);跨网络传输建议使用 SSL(sslmode=require)
  • 版本与兼容性
    • 跨大版本升级(如 14 → 15)优先采用 pg_dump/pg_restore 迁移;检查并迁移扩展(如 PostGIS)。
  • 压缩与体积
    • Custom(.dump) 已内置 zlib 压缩;若需更高压缩率,可用 Directory 格式后配合 gzip 进一步压缩。
  • 特殊字符与格式
    • CSV 导出/导入务必统一 分隔符、引号、换行符、编码(UTF8),避免导入错位。
  • 验证与回滚
    • 迁移后做数据校验(行数、主键唯一、抽样对比),并保留备份以便快速回滚

0