濮阳杆衣贸易有限公司

主頁 > 知識庫 > Oracle 管道 解決Exp/Imp大量數(shù)據(jù)處理問題

Oracle 管道 解決Exp/Imp大量數(shù)據(jù)處理問題

熱門標簽:宜賓外呼系統(tǒng)廠家 南通防封外呼系統(tǒng)運營商 修改高德地圖標注 廣州市400電話辦理 地圖標注原件 語音電話機器人缺點 百變地圖標注 淮安自動外呼系統(tǒng)開發(fā) 語音電話機器人營銷方案

先由exp把數(shù)據(jù)卸出到文件系統(tǒng), 產(chǎn)生一個.dmp文件, 然后必要時再由imp將數(shù)據(jù)裝入數(shù)據(jù)庫. 對于一般中小型數(shù)據(jù)庫來說, 全數(shù)據(jù)庫的exp所產(chǎn)生的dmp文件可能小于2GB, 但對稍大型的數(shù)據(jù)庫, exp產(chǎn)生的數(shù)據(jù)動輒數(shù)十至上百個GB. 而現(xiàn)時多數(shù)操作系統(tǒng)為32位, 其文件系統(tǒng)允許的最大文件為2GB. 這樣顯然不能由文件系統(tǒng)存放exp產(chǎn)生的數(shù)據(jù). 這是問題之一. 另一個問題是隨著數(shù)據(jù)庫的不斷增大, exp所需時間越來越長以致實際上很難實施. 本文針對以上兩個問題討論相應對策.

我們以UNIX為例首先看看怎么樣超越2GB限制. 這需利用UNIX的通用技術(shù), 如管道(named pipe), 數(shù)據(jù)拷貝工具dd以及數(shù)據(jù)壓縮(compress). 下面分別討論這幾種技術(shù).

·管道 是一種偽文件. 它存在于內(nèi)存中, 用于快速I/O操作. 管道的緩沖區(qū)采用先進先出機制, 即寫管道進程寫到緩沖區(qū)頭部而讀管道進程讀取管道尾部. 建立管道的命令為”mknod filename p".
·dd 允許我們從一個設備拷貝數(shù)據(jù)到另一個設備.
·compress 為UNIX數(shù)據(jù)壓縮工具.
實施exp之前, 我們可先檢查所產(chǎn)生dmp文件的大小. 以下步驟既可實現(xiàn),
1. 生成管道:
$ mknod /tmp/mypipe p
2. exp結(jié)果輸出到該管道
$ exp file=/tmp/mypipe ...其它exp選項>
3. 讀取管道并把結(jié)果輸出到管道, 只為查看數(shù)據(jù)量:
$ dd if=/tmp/mypipe of=/dev/null
結(jié)果返回exp (.dmp)文件大小, 單位為塊(512 bytes).
現(xiàn)在我們可以著手討論具體方法,
1. 文件壓縮
2. 直接exp到磁帶
3. 綜合方法
首先看文件壓縮方法. 利用文件壓縮我們可盡量避免dmp文件大小超過2GB限制. 我們利用UNIX的管道技術(shù), 具體步驟如下,
1. 啟動compress進程, 使之從管道讀取數(shù)據(jù)并輸出到磁盤文件.
$ mknod /tmp/exp_pipe p
$ compress /tmp/exp_pipe > export.dmp.Z
2. exp到管道.
$ exp file=/tmp/exp_pipe ...
imp時情況類似.
再看看直接exp到磁帶上的方法.
$ exp file=/dev/rmt/0m volsize=4G
$ imp file=/dev/rmt/0m volsize=4G
最后看看exp到裸設備上的方法,
$ exp file=/dev/rdsk/c0t3d0s0 volsize=4G
imp類似.以上方法都可使我們避免2GB限制.
下面討論怎么樣縮短exp索需時間的問題. 目前多數(shù)用戶會采用exp到磁帶的方法只因沒有足夠的剩余硬盤空間. 而整個exp過程所花時間的大部分都在寫磁帶上. 通過我們上面對UNIX工具的討論, 我們可以做到先exp到管道, 再將管道數(shù)據(jù)壓縮后輸出到磁帶上. 這樣寫磁帶的數(shù)據(jù)量可大大減少, 從而在相當程度上縮短寫磁帶時間. 另外從Oracle內(nèi)部角度講, 從7.3版開始, Oracle允許用戶做direct path export, 即跳過Oracle
$ make -f $ORACLE_HOME/rdbms/lib/oracle.mk expst
$ make -f $ORACLE_HOME/rdbms/lib/oracle.mk impst
以上步驟產(chǎn)生的可執(zhí)行文件expst (exp single task)和impst與exp/imp用法完全相同. 使用它們比使用exp/imp可節(jié)省多至30%的時間. 但在使用它們時千萬要注意一點, 即一定要保證在使用expst/impst時不能有任何其他用戶在使用Oracle數(shù)據(jù)庫, 否則數(shù)據(jù)庫會產(chǎn)生不可預知的后果甚至毀壞.
A:昨天在網(wǎng)上一個朋友問我,如何導入一個通過pipe導出并壓縮過的文件,我特意做了一次試驗:
  Oracle的導出和導入不能直接引用標準的輸出和輸入,但通過unix pipe可是實現(xiàn),通過管道可以加快exp/imp速度
  通過管道導出數(shù)據(jù)
  1.通過mknod -p建立管道
  mknod /home/exppipe p --在目錄/home下建立一個管道exppipe 注意參數(shù)p
  2.通過exp和gzip導出數(shù)據(jù)到建立的管道并壓縮
  exp test/test@orcl file=/home/exppipe
  gzip /home/exppipe > exp.dmp.gz
  3.導出成功完成之后刪除建立的管道
  rm -rf /home/exppipe
  根據(jù)我的測試,壓縮導出文件只是普通大小的十分之一
  通過管道導入生成的文件
  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
  以上總結(jié),PiPe真不錯,能加快速度,同時還可以避免單個文件大于2G的限制。

您可能感興趣的文章:
  • oracle中exp,imp的使用詳解
  • Oracle 數(shù)據(jù)庫導出(exp)導入(imp)說明
  • Oracle EXP和IMP用法和介紹
  • 使用imp和exp命令對Oracle數(shù)據(jù)庫進行導入導出操作詳解

標簽:南平 嘉峪關 通化 股票投資 聊城 南平 襄陽 池州

巨人網(wǎng)絡通訊聲明:本文標題《Oracle 管道 解決Exp/Imp大量數(shù)據(jù)處理問題》,本文關鍵詞  Oracle,管道,解決,Exp,Imp,大量,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle 管道 解決Exp/Imp大量數(shù)據(jù)處理問題》相關的同類信息!
  • 本頁收集關于Oracle 管道 解決Exp/Imp大量數(shù)據(jù)處理問題的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    山阴县| 黎川县| 田林县| 房产| 霸州市| 新竹县| 尖扎县| 孟州市| 长乐市| 辽宁省| 墨江| 南丰县| 田东县| 汪清县| 于都县| 涟水县| 潜江市| 盘山县| 宁乡县| 庄浪县| 恭城| 乌兰察布市| 长宁县| 盐津县| 丹凤县| 凤山市| 民勤县| 斗六市| 彝良县| 宝丰县| 衡水市| 堆龙德庆县| 清苑县| 林芝县| 连城县| 上栗县| 海丰县| 宁南县| 康乐县| 安平县| 三河市|