在 CentOS 上使用 pgAdmin 导出数据的实用步骤
一 准备工作
- 安装并登录 pgAdmin 4(桌面或浏览器模式均可),确保能连接到目标 PostgreSQL 服务器。
- 用于导出的数据库用户需具备相应权限:至少对目标对象有 CONNECT、SELECT(导出数据)权限;做完整备份时建议具备 CREATE、INSERT 等(导入用)权限。
- 明确导出范围:整库、单个 Schema、单表或查询结果;确定导出格式(SQL、CSV、自定义格式)。
二 图形界面导出步骤
- 整库或按 Schema 导出(推荐用于迁移/备份)
- 在左侧树形导航中,右键目标数据库 → 备份…(Backup)。
- 在对话框中设置:
- Filename:导出文件路径(如:/var/backups/mydb.sql 或 /var/backups/mydb.dump)。
- Format:选择 SQL(通用性强)或 Custom(自定义格式,便于压缩与选择性恢复)。
- 转储选项:按需勾选 仅数据(Data Only)、仅结构(Schema Only)、使用 INSERT 命令、设置 编码(UTF-8) 等。
- 点击 Backup 开始,完成后在指定路径查看备份文件。
- 单表或查询结果导出为 CSV(便于在表格软件中分析)
- 方式 A(表数据):展开目标表 → 右键 导出数据…(Export Data)→ 选择 CSV → 设置 分隔符(如 ,)、文本限定符(如 ")、是否包含 表头(Header) → 指定输出路径 → 开始导出。
- 方式 B(任意查询):打开 查询工具,执行查询 → 右键结果网格 → 导出 → 选择 CSV/Excel 等格式保存。
- 说明:不同版本的 pgAdmin 菜单项可能显示为“导出/导出数据/备份”,但核心流程一致。
三 常用导出格式与命令示例
- 使用 pg_dump 导出整库为 SQL 脚本
- 命令:pg_dump -U username -h hostname -p port -d dbname -f output.sql
- 导出为自定义格式(便于压缩与选择性恢复)
- 命令:pg_dump -U username -h hostname -p port -d dbname -F c -f output.dump
- 仅导出单表
- 命令:pg_dump -U username -d dbname -t schema.table -f table.sql
- 仅导出数据或仅导出结构
- 仅数据:pg_dump -U username -d dbname -a -f data_only.sql
- 仅结构:pg_dump -U username -d dbname -s -f schema_only.sql
- 使用 COPY 导出表为 CSV(服务器端文件路径)
- 命令:COPY mytable TO ‘/path/to/output.csv’ WITH (FORMAT csv, HEADER true);
- 使用 psql 与 COPY 导出查询结果(客户端文件路径)
- 命令:psql -U username -d dbname -c “COPY (SELECT * FROM mytable) TO STDOUT WITH (FORMAT csv, HEADER true)” > /path/to/query.csv
- 提示:CSV 导出时请统一 分隔符、文本限定符 与 字符编码(UTF-8),避免导入时格式错乱。
四 常见问题与优化建议
- 权限不足:若报 permission denied,为备份用户授予必要权限,例如:
- GRANT CONNECT ON DATABASE mydb TO backup_user;
- GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup_user;
- 大库导出优化:优先选择 自定义格式(-F c) 并配合压缩(如 -Z 9),或按表拆分导出;必要时在服务器侧导出以减少网络开销。
- 中文乱码:导出时显式指定 UTF-8 编码,并确保保存与读取两端编码一致。
- 版本兼容:跨大版本迁移前评估对象与语法差异;必要时在导出端调整或分阶段迁移。
- 一致性:导出前尽量避免长事务写入;对关键业务可选择在维护窗口执行或使用事务一致性策略。