首页 > 代码库 > 利用管道迁移数据
利用管道迁移数据
磁盘空间不足的情况下,利用命名或者匿名管道迁移和导入数据;需要注意命名管道的权限问题。
0. Name PIP 0 [pg@h1 ~]$ psql gtlions -ac "select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4;" select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4; tab | count -----+------- t3 | 100 t4 | 0 (2 rows) [pg@h1 ~]$ mknod syncpip p [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/sync'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/sync'" ERROR: could not open file "/home/pg/sync" for reading: No such file or directory [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -ac "select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4;" select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4; tab | count -----+------- t3 | 100 t4 | 400 (2 rows) 1. Name PIP 1 [pg@h1 ~]$ rm -rf sync* [pg@h1 ~]$ mkfifo syncpip [pg@h1 ~]$ ll syncpip prw-rw-r-- 1 pg pg 0 11月 6 09:15 syncpip [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -ac "select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4;" select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4; tab | count -----+------- t3 | 100 t4 | 800 (2 rows) 2. UnName PIP [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to stdout"|psql gtlions -p 5432 -c "copy t4 from stdin" [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to stdout"|psql gtlions -p 5432 -c "copy t4 from stdin" [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to stdout"|psql gtlions -p 5432 -c "copy t4 from stdin" [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to stdout"|psql gtlions -p 5432 -c "copy t4 from stdin" [pg@h1 ~]$ psql gtlions -p 5432 -c "copy t3 to '/home/pg/syncpip'"|psql gtlions -p 5432 -c "copy t4 from '/home/pg/syncpip'" COPY 100 [pg@h1 ~]$ psql gtlions -ac "select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4;" select 't3' tab,count(*) from t3 union all select 't4',count(*) from t4; tab | count -----+------- t3 | 100 t4 | 1300 (2 rows)
-EOF-
利用管道迁移数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。