EXP直接匯出壓縮問津,IMP直接匯入壓縮檔案的方法

sundog315發表於2012-01-19

在10G之前,甚至在10G的Oracle環境中,有很多資料量不大,重要性不太高的系統依然採用EXP/IMP邏輯匯出備份方式,或者,作為輔助備份方式。
通常情況下,我們都是這樣操作的:
1.exp匯出
2.gzip壓縮
3.gzip解壓
4.imp匯入

這樣操作有如下兩個不好的地方:
1.佔用大量磁碟空間,磁碟剩餘空間必須大於匯出的,未壓縮的檔案大小加上壓縮後的檔案大小。如果設定計劃任務,每日定時匯出的話,很有可能因為磁碟空間不足導致備份失敗。由於這種備份方式磁碟使用率的劇烈抖動,即使有監控工具,也不能很好的提供趨勢分析
2.系統資源浪費,在匯出時,大部分都在等待IO。而壓縮時,又大部分等待CPU,整體利用率不高。

那麼,有沒有辦法直接匯出成壓縮檔案?並直接從壓縮檔案匯入呢?

EXP匯出:
$ mknod p p

$ gzip < p > test.dmp.gz & exp system/xxxx tables=TEST buffer=31457280 CONSISTENT=Y COMPRESS=N file=p
[3] 24532

Export: Release 10.2.0.5.0 - Production on 星期四 1月 19 10:27:45 2012

Copyright (c) 1982, 2007, Oracle. All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即將匯出指定的表透過常規路徑...
當前的使用者已更改為 SYSTEM
. . 正在匯出表 TEST匯出了 1875063 行
成功終止匯出, 沒有出現警告。
[1] Done gzip < p > test.dmp.gz
[2]- Done gzip < p > test.dmp.gz
[3]+ Done gzip < p > test.dmp.gz

$ rm -rf p

IMP匯入:
$ mknod p p

$ gunzip < test.dmp.gz > p & imp system/xxx file=p full=y buffer=31457280
[2] 24572

Import: Release 10.2.0.5.0 - Production on 星期四 1月 19 10:29:16 2012

Copyright (c) 1982, 2007, Oracle. All rights reserved.


連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options

經由常規路徑由 EXPORT:V10.02.01 建立的匯出檔案
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 SYSTEM 的物件匯入到 SYSTEM
. . 正在匯入表 "TEST"匯入了 1875063 行
成功終止匯入, 沒有出現警告。
[1] Done gzip < p > test.dmp.gz
[2]+ Done gunzip < test.dmp.gz > p

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19423/viewspace-1057170/,如需轉載,請註明出處,否則將追究法律責任。

相關文章