国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

2Gb or Not 2Gb

2024-07-21 02:41:10
字體:
來源:轉載
供稿:網友

  
2Gb or Not 2Gb - File limits in Oracle (Part II)

 

導出(EXPort)和2Gb

 

2Gb導出文件的大小

當編寫大部分版本的Export時,在創建導出文件上都是使用了默認的文件操作API。這就意味著在很多平臺上根本就沒有可能導出2Gb或者大于2Gb的文件系統文件(file system file)。

但是仍然有一些可選項可以用于在Export時解決2Gb的限制:

 

ü         將大于2Gb的文件導出到裸設備上基本上是沒有問題的,當然這首先要求裸設備的大小必須能夠容納整個導出文件。

ü         導出到一個答應壓縮或者切割的命名管道中(適用Unix平臺)。

參看“在Unix平臺上導出大于2Gb文件的快速參考”一文 [NOTE:30528.1]。

ü         導出到磁帶(適用大多數平臺)

參看“在Unix系統中導出到磁帶”一文[NOTE:30428.1]。(這篇文章同時頁具體描述了如何導出到Unix管道和遠程shell中)

ü         Oracle8i答應導出到多個小文件中,以替代單一的大文件。

 

其它的2Gb導出問題

Oracle答應區(extent)的尺寸最大為2Gb。但是不幸的是,在大多數的Oracle發行版中Export都存在這樣一個問題,當你Export一個大文件,并且指定了COMPRESS=Y,那么就有可能在導出文件的NEXT存儲子句中包含了一個大于2Gb的值。這樣將會導致Import失敗,即使是在Import時候指定了IGNORE=Y。Oracle已經在在[BUG:708790]中報告了這個問題,并且在[NOTE:62436.1]中提出了警告。

 

當Export碰到2Gb限制的時候,會報類似下面的錯誤:

. . exporting table                   BIGEXPORT

EXP-00015: error on row 10660 of table BIGEXPORT, 

       column MYCOL, datatype 96

EXP-00002: error in writing to export file

EXP-00002: error in writing to export file

EXP-00000: Export terminated unsUCcessfully

 

在[BUG:185855]中提到了第二個問題,這個問題指出一個全庫導出產生的CREATE TABLESPACE命令將在文件大小上使用BYTES為單位,假如文件大小超過2Gb,那么在導入的時候就會產生一個ORA-2237錯誤。這個問題可以通過在導入之前先以M為單位而不是BYTES為單位來創建表空間這樣的方法來解決。[BUG:490837]也指出了相類似的問題。

 

導出到磁帶

導出的時候VOLSIZE參數限制在4Gb以下,在有些平臺上可能只有2Gb。

在Oracle8i中已經修正了這個問題。[BUG:490190]中對此問題有所描述。

 

SQL*Loader和2Gb

在SQL*Loader試圖打開一個超過2Gb的文件時,將會報以下錯誤:

       SQL*Loader-500: Unable to open file (bigfile.dat)

       SVR4 Error: 79: Value too large for defined data type

 

在[NOTE:30528.1]中的例子可以稍作修改以使在SQL*Loader中使用大的輸入文件。


Oracle 8.0.6在SQL*Loader中已經對discard file和log file實現了大文件支持,但是對于輸入的data file在各個平臺上仍然時不一樣的。[BUG:948460]中記錄了輸入文件大小限制的具體信息。[BUG:749600]則記錄了最大的discard file文件大小。

 

Oracle和其它的2Gb問題

這個章節列舉了其它各色2Gb問題。

 

l         Oracle 8.0.5版本以后在大部分的平臺上Oracle都提供了64位的版本。從8.0.5的README文件中可以看到相應的介紹-[NOTE:62252.1]

l         DBV(數據庫驗證程序)可能無法掃描超過2Gb的數據文件,并會報DBV-100錯誤。在[BUG:710888]中報告了此錯誤。

l         假如要在Oracle中創建大于2Gb的文件, SQL命令行的"DATAFILE ... SIZE xxxxxx"子句部分必須以M或者K作單位來指定,否則將會報"ORA-02237: invalid file size"錯誤。在[BUG:185855]中報告了此錯誤。

l         在Oracle 7.3.4發行版以前表空間的限額不能超過2Gb。比如:

ALTER USER <username> QUOTA 2500M ON <tablespacename>

這樣將會報" ORA-2187: invalid quota specification."錯誤。

在[BUG:425831]中報告了此錯誤。解決方法是假如一個用戶需要超過2Gb的限額,那么就給他賦予UNLIMITED TABLESPACE權限。

l         假如spool的輸出文件達到了2Gb,那么會出現錯誤。比如:SQLPLUS的命令spool。

l         在Oracle工具中的一些CORE函數不支持大文件。[BUG:749600]中報告了此錯誤,在Oracle 8.0.6和8.1.6版本中已經修正了。但是要注重在Oracle 8.1.5和別的任何補丁中都沒有修改這個錯誤。另外即使已經有修正,但是仍然還會有大文件限制因為不是所有的代碼都使用了這些CORE函數。

注重:[BUG:749600]雖然闡明了CORE函數,但是代碼的某些部分仍然有問題。比如:SQL*Loader中輸入文件的讀取就沒有使用CORE。

l         UTL_FILE包使用了上述的CORE函數,所以在沒有修正的Oracle版本中仍然有2Gb限制。<Package:UTL_FILE>是一個答應在PL/SQL中進行文件存取的PL/SQL包。

 

特定平臺中的大文件

下面是一些特定平臺中關于大文件支持的參考資料。雖然我們已經努力使這些文章的資料始終保持更新,但是仍然建議在存取大文件時對每一個操作要小心謹慎地測試。

 

平臺

參考

AIX (RS6000 / SP)

[NOTE:60888.1]

HP

[NOTE:62407.1]

Digital Unix

[NOTE:62426.1]

Sequent PTX

[NOTE:62415.1]

Sun Solaris

[NOTE:62409.1]

Windows NT

FAT文件系統支持最大4Gb的文件

NTFS文件系統理論上支持最大16Tb的文件

1.在NT的Oracle8上使用大文件之前請先參考[NOTE:67421.1]

2.Oracle8.1.6的DBVERIFY程序有問題(參考[BUG:1372172])

3.在8.1.6 / 8.1.7中自動擴展到4Gb時會出現問題導致數據庫崩潰。(參考[BUG:1668488])

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 翁源县| 亚东县| 莱阳市| 岐山县| 宕昌县| 驻马店市| 平邑县| 若尔盖县| 磐石市| 古田县| 治县。| 正宁县| 祁连县| 万山特区| 玉龙| 永平县| 福泉市| 连江县| 陈巴尔虎旗| 湖北省| 刚察县| 古交市| 仪陇县| 凌海市| 翁源县| 中方县| 东乡族自治县| 彰化县| 舒兰市| 黑河市| 长岭县| 象山县| 晋江市| 克山县| 类乌齐县| 南漳县| 阿图什市| 海丰县| 双柏县| 黄龙县|