CREATE TABLESPACE命令詳解

2021-05-28 13:10:52 字數 4311 閱讀 8289

語法描述:

create

[undo]tablespacetablespace_name

[datafiledatefile_spec1 [,datefile_spec2] ......

[storage_clause

|[online|offline]

|[permanent|temporary]

|extent_manager_clause

|segment_manager_clause}]

1、undo

說明系統將建立乙個回滾表空間。

在9i中資料庫管理員可以不必管理回滾段,只有建立了undo表空間,系統就會自動管理回滾段的分配,**的工作。當然,也可以建立一般的表空間,在上面建立回滾段.不過對於使用者來說,系統管理比自己管理要好很多.如果需要自己管理,請參見回滾段管理的命令詳解.

當沒有為系統指定回滾表空間時,系統將使用system系統回滾段來進行事務管理。

2、tablespace

指出表空間的名稱。

3、datafile  datefile_spec1

指出表空間包含什麼空間檔案。datefile_spec1 是形如  ['filename'] [sizeinteger [k|m]] [reuse] [autoextend_clause]

[autoextend_clause]是形如:autoextend

其中filename是資料檔案的全路徑名,size是檔案的大小,reuse

表示檔案是否被重用.

autoextend表明是否自動擴充套件.off|on表示自動擴充套件是否被關閉.next表示資料檔案滿了以後,擴充套件的大小.

maxsize_clause表示資料檔案的最大大小.形如maxsize.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

下面是實際應用中的乙個例子:

使用例子1:

create tablespace "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

使用例子2:

create tablespace "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

CREATE TABLESPACE命令詳解

語法描述 create undo tablespacetablespace name datafiledatefile spec1 datefile spec2 storage clause online offline permanent temporary extent manager clau...

MySQL MariaDB grant命令詳解

mysql mariadb中可以給你乙個使用者授予如select,insert,update,delete等其中的乙個或者多個許可權,主要使用grant命令,用法格式為 grant 許可權 on 資料庫物件 to 使用者 一 grant 普通資料使用者,查詢 插入 更新 刪除 資料庫中所有表資料的權...

Linux Unix vmstat命令實戰詳解

vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,記憶體使用,虛擬記憶體交換情況,io讀寫情況。這個命令是我檢視linux unix最喜愛的命令,乙個是linux unix都支援,二是相比top,我可以看到整個機器的cpu,記憶體...