昨天在網上一個朋友問我,如何導入一個通過pipe導出並壓縮過的文件,我特意做了一次試驗:
Oracle的導出和導入不能直接引用標准的輸出和輸入,但通過unix pipe可是實現,通過管道可以加快exp/imp速度
通過管道導出數據
1.通過mknod -p建立管道
mknod /home/exppipe p --在目錄/home下建立一個管道exppipe 注意參數p
2.通過exp和gzip導出數據到建立的管道並壓縮
exp test/test@orcl file=/home/exppipe &
gzip < /home/exppipe > exp.dmp.gz
3.導出成功完成之後刪除建立的管道
rm -rf /home/exppipe
根據我的測試,壓縮導出文件只是普通大小的十分之一
通過管道導入生成的文件
1.建立管道
mknod /home/exppipe p
2.導入生成的壓縮文件
imp system/passwd@orcl file=/home/exppipe fromuser=test touser=macro &
gunzip < exp.dmp.gz > /home/exppipe
這樣就導入成功,之後刪除管道
3.刪除管道
rm /home/exppipe
以上總結,PiPe真不錯,能加快速度,同時還可以避免單個文件大於2G的限制。