oracle的2G問題解決

wangzh3發表於2006-03-22

今天有個老兄問起oracle exp的時候2G的問題,就是有個表的資料很多,超過了2G,直接匯出的時候失敗。我就想起在中國電信總部做南北長途結算備份的事情。就仔細瞭解了一下。

這個問題不單單是exp,在imp,sqlldr的時候都可能出現,並且windows會出現,unix下面也可能出現。

[@more@]

為什麼2G是個特殊的數字?是因為cpu以及api使用的是32位的字長,那麼2的32次方是多少?2G!

那麼怎麼解決匯出的問題呢?

有如下幾種辦法:

1、匯出到裸裝置上 ,要求裸裝置的大小必須能夠容納整個匯出檔案

2、使用管道

3、匯出到磁帶

4、匯出到多個檔案中。

比較適合windows作業系統的可能只有方法4了。這個要求要事先評估好最終的匯出檔案的總的大小,然後按不到2G的大小分割成不同的檔案個數。

這裡主要說一下方式2的使用

mknod yourfile.dmp p
compress yourfile.dmp.Z &
exp usrename/password file=yourfile.dmp buffer=40960000 tables=(...)

匯入的時候也比較類似。

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

相關文章