a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

Oracle 管道 解決Exp/Imp大量數據處理問題

2024-08-29 13:56:30
字體:
來源:轉載
供稿:網友

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

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

·管道 是一種偽文件. 它存在于內存中, 用于快速I/O操作. 管道的緩沖區采用先進先出機制, 即寫管道進程寫到緩沖區頭部而讀管道進程讀取管道尾部. 建立管道的命令為”mknod filename p".
·dd 允許我們從一個設備拷貝數據到另一個設備.
·compress 為UNIX數據壓縮工具.
實施exp之前, 我們可先檢查所產生dmp文件的大小. 以下步驟既可實現,
1. 生成管道:
$ mknod /tmp/mypipe p
2. exp結果輸出到該管道
$ exp file=/tmp/mypipe <...其它exp選項> &
3. 讀取管道并把結果輸出到管道, 只為查看數據量:
$ dd if=/tmp/mypipe of=/dev/null
結果返回exp (.dmp)文件大小, 單位為塊(512 bytes).
現在我們可以著手討論具體方法,
1. 文件壓縮
2. 直接exp到磁帶
3. 綜合方法
首先看文件壓縮方法. 利用文件壓縮我們可盡量避免dmp文件大小超過2GB限制. 我們利用UNIX的管道技術, 具體步驟如下,
1. 啟動compress進程, 使之從管道讀取數據并輸出到磁盤文件.
$ 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索需時間的問題. 目前多數用戶會采用exp到磁帶的方法只因沒有足夠的剩余硬盤空間. 而整個exp過程所花時間的大部分都在寫磁帶上. 通過我們上面對UNIX工具的討論, 我們可以做到先exp到管道, 再將管道數據壓縮后輸出到磁帶上. 這樣寫磁帶的數據量可大大減少, 從而在相當程度上縮短寫磁帶時間. 另外從Oracle內部角度講, 從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
以上步驟產生的可執行文件expst (exp single task)和impst與exp/imp用法完全相同. 使用它們比使用exp/imp可節省多至30%的時間. 但在使用它們時千萬要注意一點, 即一定要保證在使用expst/impst時不能有任何其他用戶在使用Oracle數據庫, 否則數據庫會產生不可預知的后果甚至毀壞.
A:昨天在網上一個朋友問我,如何導入一個通過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的限制。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产亚洲网站 | 免费观看成人羞羞视频网站观看 | 在线第一页 | 成年人免费看 | 国产成人午夜精品5599 | 成人午夜在线观看 | 久久久久久久 | 日韩www.| 亚洲精品成人a8198a | 日韩免费在线观看视频 | 亚洲蜜臀av乱码久久精品蜜桃 | 91精品国产一区二区 | www视频在线观看 | 在线草 | 国产高清中文字幕 | 91精品综合久久久久久五月天 | 看毛片网站 | 久久久久久久伦理 | 免费看的黄色大片 | 国产亚洲欧美一区 | 91在线免费看 | 99精品99| 亚洲精品成人 | 欧美一级免费看 | 久久久精品国产 | 国产成人精品一区二区在线 | 中文字幕精品一区二区三区精品 | 国产伦精品一区二区三区在线 | 国产高清不卡一区二区三区 | 日本久久www成人免 亚洲成人av | 成人av视| 91在线免费视频 | 亚洲 欧美日韩 国产 中文 | 国产免费看黄网站 | 6080夜射猫 | 精品欧美一区二区三区久久久 | 性色av网| 一本色道久久综合亚洲精品不卡 | 福利视频一区二区 | 欧美一区二区三区的 | 久久精品国产精品亚洲 |