[Oracle 10g] 大檔案表空間(zt)

trigger_lau發表於2010-05-01
簡單介紹Oracle 10g 的儲存能力有了顯著的增強。這表現在很多方面,下面介紹 10g 新增的表空間型別:大檔案 (Bigfile) 表空間。 大檔案表空間從某種角度來說提高了 Oracle 在 VLDB 上的管理能力。 只有自動段空間管理的 LMT (Locally Managed Tablespace[@more@]


簡單介紹

Oracle 10g 的儲存能力有了顯著的增強。這表現在很多方面,下面介紹 10g 新增的表空間型別:大檔案 (Bigfile) 表空間

大檔案表空間從某種角度來說提高了 Oracle 在 , 核心的版本是2.6.9,檔案系統是 EXT3 。2.4以後的版本的核心都是支援 LFS (Large File Support)的。

檔案系統(塊) 檔案大小限制 檔案系統大小限制
ext2/3 (2K) 256G 8T
ext2/3 (4K) 2T 16T
ext2/3 (8K) 64T 32T
ReiserFS 3.6 1E 16T

我們檢查一下OS檔案系統塊大小:

[root@FC3 ~]# tune2fs -l /dev/hda7 | grep BlockBlock count:              2621440Block size:               4096Blocks per group:         32768[root@FC3 ~]#

也即,我們可以在作業系統上建立不大於 2T 的檔案。雖然我們沒有那麼大的儲存空間,不妨也測試一下:

SQL> CREATE BIGFILE TABLESPACE bftbs02  2      DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 1800g;

在另外一個終端中,觀察該目錄的變化情況:

[root@FC3 DEMO]# ls -ltrtotal 1159048-rw-------  1 oracle oracle       5251072 Nov 28 20:05 bftbs01.dbf-rw-------  1 oracle oracle 1932735291392 Nov 28 20:49 bftbs02.dbf[root@FC3 DEMO]# 

哇,我們真的能觀察到Oracle在建立“超大”檔案呢,接近1.8T 的檔案 :-) 要過一會兒,Oracle 才會報告錯誤(畢竟1800G 的大檔案):

CREATE BIGFILE TABLESPACE bftbs02*ERROR at line 1:ORA-19502: write error on file "/u01/app/oracle/oradata/DEMO/bftbs02.dbf",blockno 898048 (blocksize=8192)ORA-27072: File I/O errorAdditional information: 898047

可見,在本例中,由於作業系統檔案系統的限制,我們只可以建立2T以下的 BFT

你需要BFT麼?

應用 BFT 的話,優點缺點都存在。根據 Oracle 官方的文件,DB_FILES 和 MAXDATAFILES 這兩個引數的值給 SGA 帶來的壓力會減輕(原來的壓力就很大麼?)。資料庫中最大資料檔案數是有限的 (64K files),BFT 的出現的確對海量資料庫有一定的積極意義。從一定程度上來說,BFT 簡化了管理,但是在恢復的時候可能是一場災難。

在筆者看來,至少我們現在在大多數情況下不需要用 BFT 。"你要把雞蛋都放到一個籃子裡麼? "

參考資訊

Oracle Database Administrator's Guide 10g Release 1 (10.1) Part Number B10739-01 ( Note 62294.1 ) Large File Support in Linux - ~aj/linux_lfs.html Metalink [NOTE:262472.1] 10g: BIGFILE Type Tablespaces Versus SMALLFILE Type

link:

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

相關文章