pgAdmin实现数据导入导出的常用方法
一 全库备份与恢复 Backup Restore
- 适用场景:迁移或备份整个数据库、保留结构与数据、跨环境恢复。
- 导出步骤
- 在左侧树形导航中右键目标数据库,选择Backup…。
- 在弹窗中设置:
- Filename:导出文件路径与名称。
- Format:选择Plain(纯SQL脚本)或Custom/Tar(自定义归档,便于选择性恢复)。
- 选项:按需勾选“只导出结构(-s)”“只导出数据(-a)”“包含/排除对象”等。
- 点击Backup开始,右下角显示进度,完成后得到备份文件。
- 导入步骤
- 若恢复至新库,先创建空数据库(字符集与排序规则保持一致)。
- 右键目标数据库,选择Restore…。
- 选择备份文件,Format 需与导出时一致;自定义归档可用pg_restore进行选择性对象恢复。
- 点击Restore开始,完成后在对象树中校验表与数据。
二 表级数据导入导出 Import Export CSV
- 适用场景:批量导入/导出表数据(如与 Excel/BI 工具交换数据)。
- 导出为 CSV
- 方法一:在对象树中右键表,选择Export…,格式选CSV,勾选CSV HEADER(导出列名),设置分隔符(如逗号),指定文件路径后开始导出。
- 方法二:在Query Tool中执行:
- 导出整表:COPY table_name TO ‘/path/out.csv’ WITH CSV HEADER;
- 导出查询结果:COPY (SELECT * FROM table_name WHERE …) TO ‘/path/out.csv’ WITH CSV HEADER;
- 从 CSV 导入
- 方法一:在对象树中右键表,选择Import…,选择 CSV 文件,设置分隔符、Header选项、对应列映射与数据格式,开始导入。
- 方法二:在Query Tool中使用 COPY(服务器端文件,需数据库服务器可访问该路径):
- COPY table_name FROM ‘/path/in.csv’ WITH CSV HEADER;
- 注意:若文件在客户端,请使用**\copy**(在 psql 中)或客户端工具的上传功能;在 pgAdmin 的 Import 对话框中通常直接选择客户端文件并上传。权限与路径需满足服务器安全策略。
三 执行 SQL 脚本导入 dump.sql
- 适用场景:已有 .sql 脚本(如 pg_dump 导出的纯文本脚本)需要在目标库中执行。
- 方式一(推荐):在 pgAdmin 顶部菜单Tools → Query Tool,打开/粘贴 SQL 脚本,点击Execute/Refresh执行;或打开文件后执行。
- 方式二:使用 psql 命令行执行(适合大文件与自动化):
- psql -U 用户名 -d 数据库名 -f /path/dump.sql
- 提示:若脚本包含建库语句,请先创建目标库;若脚本为自定义归档(-F c/-F t),应使用Restore而非直接执行 SQL。
四 常见问题与最佳实践
- 版本差异:不同版本的 pgAdmin 界面名称与细节略有差异,但核心流程一致(Backup/Restore、Import/Export、Query Tool 执行脚本)。
- 权限与路径:执行导入/导出需要相应权限;服务器端 COPY 要求文件对数据库服务器可见,客户端文件请使用 Import 对话框或 psql 的 \copy。
- 编码与格式:导出 CSV 时统一字符编码(常见 UTF-8)与分隔符,并在导入时保持一致;导出时建议勾选CSV HEADER以便列映射。
- 大对象与性能:大数据量建议用Custom/Tar格式配合pg_restore进行并行/选择性恢复;必要时分批导入、在闲时执行、监控锁与长事务。