標籤:
建立OracleXE資料表空間樣本
sqlplus /nolog
connect sys as sysdba
SQL>
create tablespace OPFOCN
datafile ‘C:\\oraclexe\\app\\oracle\\oradata\\PF\\opfo.dbf‘ size 1024m
autoextend on next 1m maxsize 3000m
extent management local
segment space management auto;
資料表空間已建立。
其詳細文法詳解如下:
Tablespace created
- 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
- 說明系統將建立一個復原資料表空間。
- 在11g中資料庫管理員可以不必管理復原段,只有建立了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;
Connected to Oracle Database 11g Express Edition Release 11.2.0.1.0
Connected as SYS
【Oracle XE系列之四】建立OracleXE資料表空間詳解