Decode360's Blog

          業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          Oracle的DataFile大小問題
          ?
          ?
          ??? Oracle的數據文件大小是有限制的,最近在創建datafile的時候就遇到了問題,所以專門去查找了一些資料,把這個問題搞清楚了。限制是很簡單直接的,但是作為DBA是必須要了解的。具體的問題是這樣的:
          ?
          ?
          ??? 在創建一個100G的表空間時遇到了報錯:
          ?
          SQL> create tablespace wxq_tbs datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\WANGXIAOQI\DATAFILE\WXQ_TBS.DBF' size 10G
          2?? autoextend on next 2G maxsize 100G;
          ?
          ORA-03206: maximum file size of (13107200) blocks in AUTOEXTEND clause is out of range
          ?
          ?
          ??? 按照Oracle文檔的描述,每個datafile的最大容量為(2^22-1)個block,即4194303個block,而當前數據庫的block大小是8k,也就是說最大的文件大小是32G,要建100G的datafile就不行了。
          ?
          ??? 也就是說,以Oracle的限制,如果要建普通的datafile,最大的大小就是 (2^22-1)*32K = 128G (注:Oracle最大支持block為32k)。存在這個限制是因為Oracle的內部ROWID使用22位2進制數來存儲不同的block號,所以22位最多代表(2^22-1)個block。
          ?
          ?
          ??? 為了解決數據文件大小的問題,Oracle10g專門引入了bigfile tablespace,在bigfile tablespace里Oracle使用32位來存儲block號,即比之前增大了1024倍,其最大文件大小從128G增加到128T。當然如果使用bigfile tablespace,則需要注意OS的文件大小限制。
          ?
          ??? 例如在windows下,單個文件最大限制如下:
          ??? FAT12?????????? 8M??
          ??? FAT16?????????? 2G????
          ??? FAT32?????????? 4G??
          ??? NTFS??????????? 64GB??
          ??? NTFS5.0???????? 2TB??
          ?
          ?
          ?
          ?
          ??? 下面介紹一下Oracle 10g的bigfile tablespace創建語法,其實很簡單:
          ?
          SQL> create tablespace big_tbs datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\WANGXIAOQI\DATAFILE\BIG_TBS.DBF' size 20G
          2?? autoextend on next 10G maxsize 100G;
          ?
          Tablespace created.
          ??? 至于對其他的一些操作的影響比較復雜,暫時不做研究,有時間了專門了解一下??梢粤私獾幕咎匦允牵簳J得使用LMT和ASSM來對tablespace進行管理。
          ?
          ?
          ?
          ??? 需要注意的是,對于bigfile tablespace來說,只允許創建一個datafile,而不允許再添加datafile。
          ?
          SQL> alter tablespace big_tbs add datafile '/opt/oracle/product/10.2.0/oradata/wangxiaoqi/big_tbs2.dbf' size 20G
          ?2 autoextend on next 10M maxsize 100M;
          alter tablespace big_tbs add datafile '/opt/oracle/product/10.2.0/oradata/devMISowb/big_tbs2.dbf' size 20M
          *
          ERROR at line 1:
          ORA-32771: cannot add file to bigfile tablespace
          ?
          ?
          ??? 最后刪除tablespace
          ?
          SQL> drop tablespace big_tbs including contents cascade constraints;
          ?
          ?
          ?
          ?
          ?
          About bigfile tablespace restrictions
          ----------------------------------------
          http://www.remote-dba.net/oracle_10g_new_features/tblsp_restrictions.htm
          ?
          ?
          ?
          ?
          ?
          ?
          posted on 2009-07-24 22:38 decode360 閱讀(3963) 評論(0)  編輯  收藏 所屬分類: 07.Oracle
          主站蜘蛛池模板: 北安市| 梨树县| 吉林省| 赤峰市| 黄山市| 湖南省| 佛学| 盐津县| 金寨县| 南岸区| 恭城| 瑞昌市| 沿河| 浦江县| 镇雄县| 邯郸市| 抚顺县| 阳泉市| 寻乌县| 建瓯市| 合山市| 黎川县| 枣庄市| 昌乐县| 莱阳市| 托克逊县| 霍林郭勒市| 深圳市| 青阳县| 洪洞县| 桑日县| 会昌县| 楚雄市| 玉山县| 双江| 沂源县| 龙川县| 榆社县| 得荣县| 安塞县| 鄯善县|