需求場景:內部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
完成