如何建立ORACLE大檔案資料表空間

來源:互聯網
上載者:User

如何建立ORACLE大檔案資料表空間
 
SQL>CREATE BIGFILE TABLESPACE 表名
datafile 'd:\ndo\ddo\表名.DBF‘
SIZE 500M AUTOEXTEND ON;


SQL>Create Bigfile tablespace  bf_images_xp
datafile 'e:\datacenter\bf\bf_images_xp.dbf'  size 500M Autoextend on;
//說明如下:
//建立一個大資料表空間,名稱為:bf_images_xp,資料檔案為e:\datacenter\bf\bf_images_xp.dbf
//初始化大小為500M,且檔案自動成長


SQL>create bigfile tablespace bf_v_xp
datafile 'e:\datacenter\bf\bf_v_xp.dbf'  size 500M  autoextend on;
 
 
其中BIGFILE表示建立 的資料表空間是大檔案資料表空間,
DATAFILE指定組成大檔案資料表空間的大檔案(上海硬碟資料恢複檔案),
SIZE表示大檔案的初始大小:
AUTOEXTED ON表示允許大檔案自動擴張。
網友資料:供參考。
 
發現資料表空間檔案容量與DB_BLOCK_SIZE有關,
在初始建庫時,DB_BLOCK_SIZE要根據實際需要,
設定為4K,8K、16K、32K、64K等幾種大小,
ORACLE的物理檔案最大隻允許4194304個塊(由作業系統決定),
smallfile tablespace資料表空間檔案的最大值為 4194304×DB_BLOCK_SIZE/1024M。
即:
4k最大資料表空間為:16384M=16G
8K最大資料表空間為:32768M=32G
16k最大資料表空間為:65536M=64G
32K最大資料表空間為:131072M=128G
64k最大資料表空間為:262144M=256G
//---------------------------------------------------------------------
oracle bigfile tablespace 大檔案資料表空間 ----------------------------
Oracle 10g 新增的資料表空間類型:大檔案 (Bigfile) 資料表空間。      
大檔案資料表空間從某種角度來說提高了 Oracle 在 VLDB 上的管理能力。 
只有自動段空間管理的 LMT (Locally Managed Tablespaces ) 支援 BIGFILE 資料表空間。 
大檔案資料表空間只能包含一個檔案,但是檔案可以達到 4G 個資料區塊大小。
(以下用 BFT 指代 BIGFILE Tablespace。BFT 可以和以下儲存技術結合使用:
自動儲存管理(ASM)   LVM   OMF   
理論上的 BFT 可以達到下面所列的值:     
資料區塊大小(單位:K) BFT 最大值(單位:T)   
2k 8T   
4k 16T   
8k 32T   
16k 64T   
32k 128T     
在實際環境中,這還受到作業系統的檔案系統的限制。      


BFT基本操作      
10g 資料庫在建立的時候,會指定預設的資料表空間類型。
如果不特殊指定的話,預設為 SMALLFILE 類型的資料表空間。      
SQL> SELECT * FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE'; 
這種情況下,如果我們建立資料表空間的時候不指定類型,那麼預設建立的都是 SMALLFILE 類型的資料表空間。


修改資料庫預設的資料表空間類型
可以通過 ALTER DATABASE 命令來修改資料庫預設的資料表空間類型:      
SQL> ALTER DATABASE SET DEFAULT bigfile TABLESPACE;  
Database altered.      
SQL> SELECT *  FROM database_properties WHERE property_name = 'DEFAULT_TBS_TYPE';      
SQL>   
SQL> ALTER DATABASE SET DEFAULT smallfile TABLESPACE;      
建立 BIGFILE 類型的資料表空間,只需指定額外的一個參數 BIGFILE 即可,
其他和原有建立資料表空間文法類似:      
CREATE BIGFILE TABLESPACE bftbs  DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs01.dbf' SIZE 5M;  
DBA_TABLESPACES (USER_TABLESPACES)與 V$TABLESPACE 這兩個視圖可以查看 BIGFILE 資料表空間的相關資訊。
先看看 DBA_TABLESPACES 在 10g 中有了什麼變化:      
SQL> desc DBA_TABLESPACES    
    
SQL>      
和 9i 相比,
 DBA_TABLESPACES 視圖多了兩列:RETENTION 和 BIGFILE。
其中 BIGFILE 列說明該資料表空間是否為 BFT:      
SQL> SELECT tablespace_name, bigfile FROM dba_tablespaces; 
8 rows selected.      V$TABLESPACE 視圖相對 9i 也增加了新的列:  


SQL> desc V$TABLESPACE   Name
其中 FlASHBACK_ON 和 BIGFILE 列都是新增的。      


BFT 屬性      
BFT有一些特有的屬性。      
1.每個資料表空間只能包含一個資料檔案。如果試圖添加新的檔案,則會報告 ORA-32771 錯誤:      
SQL> ALTER TABLESPACE bftbs  
ADD DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M;   
ALTER TABLESPACE bftbs   *   ERROR at line 1:   
ORA-32771: cannot add file to bigfile tablespace      


2.只有自動段空間管理的 LMT (locally managed tablespaces ) 支援 BFT      
SQL> CREATE BIGFILE TABLESPACE bftbs02   
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M   
EXTENT MANAGEMENT DICTIONARY;   
CREATE BIGFILE TABLESPACE bftbs02   *   ERROR at line 1:   
ORA-12913: Cannot create dictionary managed tablespace      


SQL> CREATE BIGFILE TABLESPACE bftbs02   
DATAFILE '/u01/app/oracle/oradata/DEMO/bftbs02.dbf' SIZE 5M  
SEGMENT SPACE MANAGEMENT MANUAL;   
CREATE BIGFILE TABLESPACE bftbs02   *   ERROR at line 1:   
ORA-32772: BIGFILE is invalid option for this type of tablespace      


3.相對檔案號(RELATIVE_FNO)為1024 ( 4096 on OS/390)      
因為BFT只有一個資料檔案,所以其相對檔案號也是固定的:1024      
SQL> SELECT tablespace_name, file_id, relative_fno   
  FROM dba_data_files;      
SQL>      


4.rowid的變化      
在 BFT 上儲存的表的 ROWID 與 smallfile 資料表空間上的 rowid 結構有些不同的。
要正確得到 rowid 資訊,dbms_rowid 包增加了一個新的參數 ts_type_in 來解決這個問題。
參考這個範例:      
SQL> SELECT DBMS_ROWID.rowid_block_number (ROWID, 'BIGFILE')   
  FROM foo; 
24      
SQL>      
你可以建立多大的資料表空間?      
我們在前面提及,BFT 還受到作業系統的檔案系統的限制。
下面我們以 Linux 作業系統為例:      
SQL> SHOW parameters db_block_size     
  
db_block_size  integer   8192   
SQL>      
也就是說,理論上我們可以建立最大 32T

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.