需求场景:内部postgresql数据库需要同步到现场环境,由于现场环境有客户真实数据,不能单库导入备份,以免覆盖客户数据,需要导入单个表
导出数据
[root@vrgv ~]# su - postgres Last login: Wed Dec 2 14:30:42 CST 2020 on pts/1 [postgres@vrgv ~] [postgres@vrgv ~]$ pg_dump cn_nc_14_001_tywxc -t '"network"."Park_Network"' -f /home/postgres/Park_Network.sql
pg_dump
:备份数据命令
cn_nc_14_001_tywxc
:数据库名称
-t '"network"."Park_Network_vertices_pgr"'
:指定导出的表名称,'" "'为啥这么写,暂时我也不清楚写法规则
扩展参数:-h 地址 -p 端口 -n 指定schema -Fp 输出一个纯文本sql文件 -E 指定字符集 -f 指定生成的sql文件路径 最后一个是dbname -U 用户 -W 密码
在Navicat中,表层级是这样子的
-f /home/postgres/Park_Network_vertices_pgr.sql
:指定导出的位置
导入数据:
我把数据文件放到了/app/sql目录下
[postgres@vrgv ~]$ su - postgres -c "psql -h 127.0.0.1 -U postgres cn_nc_14_001_tywxc < /app/sql/Park_Network.sql" SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET SET SET CREATE TABLE ALTER TABLE CREATE SEQUENCE ALTER TABLE ALTER SEQUENCE ALTER TABLE setval -------- 34 (1 row) ALTER TABLE CREATE INDEX
完成