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



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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM