Oracle create tablespace 建立表空間語法詳解

bitifi發表於2015-10-23
  • CREATE [UNDO]  TABLESPACE tablespace_name          
  • [DATAFILE datefile_spec1 [,datefile_spec2] ......   
  • [{MININUM EXTENT integer [k|m]   
  • |BLOCKSIZE integer [k]   
  • |logging clause | FORCE LOGGING   
  • |DEFAULT {data_segment_compression} storage_clause   
  • |[online|offline]   
  • |[PERMANENT|TEMPORARY]   
  • |extent_manager_clause   
  • |segment_manager_clause}]   
  • 1、undo   
  • 說明系統將建立一個回滾表空間。   
  • 在9i中資料庫管理員可以不必管理回滾段,只有建立了undo表空間,系統就會自動管理回滾段的分配,回收的工作。   
  • 當然,也可以建立一般的表空間,在上面建立回滾段.不過對於使用者來說,系統管理比自己管理要好很多.   
  • 如果需要自己管理,請參見回滾段管理的命令詳解.   
  • 當沒有為系統指定回滾表空間時,系統將使用system系統回滾段來進行事務管理。   
  • //   
  • 2、tablespace_name   
  • 指出表空間的名稱。   
  • //   
  • 3、datafile  datefile_spec1   
  • 指出表空間包含什麼空間檔案。   
  • datefile_spec1是形如:[ 'filename' ] [SIZE integer [ K | M ]] [REUSE] [autoextend_clause]   
  • [autoextend_clause]是形如:AUTOEXTEND { OFF | ON [ NEXT integer [ K | M ] ] [maxsize_clause] }   
  • 其中filename是資料檔案的路徑名,可以是相對路徑,也可以是絕對路徑。   
  • size是檔案的大小,   
  • REUSE表示檔案是否被重用.   
  • AUTOEXTEND表明是否自動擴充套件.   
  • OFF | ON  表示自動擴充套件是否被關閉.   
  • NEXT 表示資料檔案滿了以後,擴充套件的大小.   
  • maxsize_clause表示資料檔案的最大大小.形如MAXSIZE { UNLIMITED | integer [ K | M ] }.   
  • UNLIMITED 表示無限的表空間.   
  • integer是資料檔案的最大大小.   
  •        DATAFILE  'D:"oracle"oradata"IMAGEDATA01.dbf'  SIZE 2000M,   
  •                  'D:"oracle"oradata"IMAGEDATA02.dbf'  SIZE 2000M   
  • //   
  • 4、MININUM EXTENT integer [k|m]   
  • 指出在表空間中範圍的最小值。這個引數可以減小空間碎片,保證在表空間的範圍是這個數值的整數倍。   
  • //   
  • 5、BLOCKSIZE integer [k]   
  • 這個引數可以設定一個不標準的塊的大小。如果要設定這個引數,必須設定db_block_size,   
  • 至少一個db_nk_block_size,並且宣告的integer的值必須等於db_nk_block_size.   
  • 注意:在臨時表空間不能設定這個引數。   
  • //   
  • 6、logging clause   
  • 這個子句宣告這個表空間上所有的使用者物件的日誌屬性(預設是logging),   
  • 包括表,索引,分割槽,物化檢視,物化檢視上的索引,分割槽。   
  • //   
  • 7、FORCE LOGGING   
  • 使用這個子句指出表空間進入強制日誌模式。此時,系統將記錄表空間上物件的所有改變,除了臨時段的改變。   
  • 這個引數高於物件的nologging選項。   
  • 注意:設定這個引數資料庫不行open並且出於讀寫模式。而且,在臨時表空間和回滾表空間中不能使用這個選項。   
  • //   
  • 8、DEFAULT storage_clause   
  • 宣告預設的儲存子句。   
  • //   
  • 9、online|offline   
  • 改變表空間的狀態。online使表空間建立後立即有效.這是預設值.   
  • offline使表空間建立後無效.這個值,可以從dba_tablespace中得到。   
  • //   
  • 10、PERMANENT|TEMPORARY   
  • 指出表空間的屬性,是永久表空間還是臨時表空間。   
  • 永久表空間存放的是永久物件,臨時表空間存放的是session生命期中存在的臨時物件。   
  • 這個引數生成的臨時表空間建立後一直都是字典管理,不能使用extent management local選項。   
  • 如果要建立本地管理表空間,必須使用create temporary tablespace   
  • 注意,宣告瞭這個引數後,不能宣告block size   
  • //   
  • 11、extent_management_clause   
  • 這是最重要的子句,說明了表空間如何管理範圍。一旦你宣告瞭這個子句,只能透過移植的方式改變這些引數。   
  • 如果希望表空間本地管理的話,宣告local選項。本地管理表空間是透過點陣圖管理的。   
  • autoallocate說明表空間自動分配範圍,使用者不能指定範圍的大小。只有9.0以上的版本具有這個功能。   
  • uniform說明表空間的範圍的固定大小,預設是1m。   
  • 不能將本地管理的資料庫的system表空間設定成字典管理。   
  • oracle公司推薦使用本地管理表空間。   
  • 如果沒有設定extent_management_clause,oracle會給他設定一個預設值。   
  • 如果初始化引數compatible小於9.0.0,那麼系統建立字典管理表空間。   
  • 如果大於9.0.0,那麼按照如下設定:   
  • 如果沒有指定 default  storage_clause,oracle建立一個自動分配的本地管理表空間。   
  • 否則,   
  • 如果指定了mininum extent,那麼oracle判斷mininum extent 、initial、next是否相等,以及pctincrease是否=0.   
  • 如果滿足以上的條件,oracle建立一個本地管理表空間,extent size是initial.   
  • 如果不滿足以上條件,那麼oracle將建立一個自動分配的本地管理表空間。   
  • 如果沒有指定mininum extent。initial、那麼oracle判斷next是否相等,以及pctincrease是否=0。   
  • 如果滿足oracle建立一個本地管理表空間並指定uniform。否則oracle將建立一個自動分配的本地管理表空間。   
  • 注意:本地管理表空間只能儲存永久物件。   
  • 如果你宣告瞭local,將不能宣告 default  storage_clause,mininum extent、temporary.   
  • EXTENT MANAGEMENT LOCAL   
  • //   
  • 12、segment_management_clause   
  • 段空間管理的方式,自動或者手動:   
  • SEGMENT SPACE MANAGEMENT {AUTO|MANUAL}   
  • --   
  • 例項1:建立永久表空間   
  • 可以一次建立單個表空間,也可以一次性建立多個表空間   
  • 1.1建立單個表空間   
  • create tablespace ts_something   
  •   logging   
  •   datafile  '/dbf1/ts_sth.dbf'     
  •   size 32m    
  •   autoextend on    
  •   next 32m maxsize 2048m   
  •   extent management local;   
  • //   
  • 1.2建立多個表空間   
  • CREATE TABLESPACE TS_IMAGEDATA   
  •     NOLOGGING    
  •     DATAFILE  'D:"oracle"oradata"DATA01.dbf'  SIZE 2000M,    
  •               'D:"oracle"oradata"DATA02.dbf'  SIZE 2000M,    
  •               'D:"oracle"oradata"DATA03.dbf'  SIZE 2000M,    
  •               'D:"oracle"oradata"DATA04.dbf'  SIZE 2000M,    
  •               'D:"oracle"oradata"DATA05.dbf'  SIZE 2000M EXTENT    
  •     MANAGEMENT LOCAL SEGMENT    
  •     SPACE MANAGEMENT  AUTO;   
  • //   
  • CREATE TABLESPACE TS_IMAGEDATA   
  • LOGGING   
  • DATAFILE  'E:"ORACLE"ORADATA"DATA_01.DBF'  SIZE 2000M REUSE    
  •                 AUTOEXTEND ON    
  •                 NEXT 51200K MAXSIZE 3900M,   
  •           'E:"ORACLE"ORADATA"XL"DATA_02.DBF'  SIZE 2000M REUSE   
  •                 AUTOEXTEND ON    
  •                 NEXT 51200K MAXSIZE 3900M,   
  •           'E:"ORACLE"ORADATA"XL"DATA_03.DBF'  SIZE 2000M REUSE   
  •                 AUTOEXTEND ON    
  •                 NEXT 51200K MAXSIZE 3900M,   
  •           'E:"ORACLE"ORADATA"XL"DATA_04.DBF'  SIZE 2000M REUSE   
  •                 AUTOEXTEND ON    
  •                 NEXT 51200K MAXSIZE 3900M   
  • EXTENT MANAGEMENT LOCAL    
  • SEGMENT SPACE MANAGEMENT AUTO;   
  • 例項2:建立撤銷表空間   
  • create undo tablespace ts_undo   
  • datafile  '/dbf/undo.dbf'   size 100M;   
  • //   
  • CREATE UNDO TABLESPACE ts_undo01    
  •        DATAFILE  '/data/ts_undo01.dbf'     
  •        SIZE 50000M REUSE   
  •        autoextend on; 



  • 建立私用表空間:
  • create tablespace jf_data datafile '/opt/oracle/app/oracle/oradata/iptvbss/jfdata.dbf' size 1000M autoextend on next 500M maxsize unlimited;


  • create tablespace jf_index datafile '/opt/oracle/app/oracle/oradata/iptvbss/jfindex.dbf' size 1000M autoextend on next 500M maxsize unlimited;
  • 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30496894/viewspace-1815879/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章