mydb)。pg_restore工具(适用于自定义格式备份,如.dump或.backup文件),命令格式如下:pg_restore -U postgres -h localhost -d 目标数据库名 /path/to/backup.sql
示例(导入mydb_backup.sql到mydb数据库):pg_restore -U postgres -h localhost -d mydb /var/lib/pgsql/backups/mydb_backup.sql
COPY命令,将CSV数据批量插入表中:COPY 表名(列1, 列2, 列3)
FROM '/path/to/data.csv'
WITH (FORMAT csv, HEADER); -- HEADER表示CSV第一行为列名
示例(导入users.csv到public.users表,包含id、name、email列):COPY public.users(id, name, email)
FROM '/var/lib/pgsql/data/users.csv'
WITH (FORMAT csv, HEADER);
注:执行
COPY命令需确保PostgreSQL用户对目标文件有读取权限,且文件路径为服务器本地路径(远程路径需配置pg_hba.conf)。
/var/lib/pgsql/exports/mydb_export.sql)和分隔符(CSV格式建议用逗号)。ls命令查看)。pg_dump工具(适用于全库或单表备份),命令格式如下:pg_dump -U postgres -h localhost -d 目标数据库名 -f /path/to/backup.sql
示例(导出mydb数据库到mydb_backup.sql):pg_dump -U postgres -h localhost -d mydb -f /var/lib/pgsql/backups/mydb_backup.sql
pg_dump命令中添加-t参数,指定表名(支持通配符*,如user_*表示所有以user_开头的表):pg_dump -U postgres -h localhost -d mydb -t users -f /var/lib/pgsql/backups/users.sql
Query Tool执行COPY命令,将表数据导出为CSV:COPY (SELECT * FROM 表名)
TO '/path/to/output.csv'
WITH (FORMAT csv, HEADER);
示例(导出public.users表所有数据到users_export.csv):COPY (SELECT * FROM public.users)
TO '/var/lib/pgsql/data/users_export.csv'
WITH (FORMAT csv, HEADER);
注:导出CSV时,若需隐藏敏感列(如密码),可在
SELECT语句中排除该列(如SELECT id, name FROM users)。
/var/lib/pgsql/exports),可通过chmod命令修改权限(如chmod -R 755 /var/lib/pgsql/exports)。\t);字符编码建议使用UTF-8(避免中文乱码)。WHERE条件分批次查询导出(如SELECT * FROM large_table WHERE id BETWEEN 1 AND 10000),减少单次操作内存占用;gzip压缩(如gzip /var/lib/pgsql/backups/mydb_backup.sql),节省存储空间;scp(如scp user@remote:/path/to/file.sql .)或FTP传输,避免网络中断导致数据丢失。pg_dump),防止操作失误导致数据丢失。