我們知道Oracle資料庫真正存放數據的是數據文件(Data File),oracle表空間(tablespace)實際上是一個邏輯的概念,在物理上是並不存在的,那麼把一組data files捻在一起就成為一個表空間。表空間屬性:一個資料庫可以包含多個表空間,一個表空間只能屬於一個資料庫一個表空間包 ...
我們知道Oracle資料庫真正存放數據的是數據文件(Data File),oracle表空間(tablespace)實際上是一個邏輯的概念,在物理上是並不存在的,那麼把一組data files捻在一起就成為一個表空間。
表空間屬性:
一個資料庫可以包含多個表空間,一個表空間只能屬於一個資料庫
一個表空間包含多個數據文件,一個數據文件只能屬於一個表空間
表空間可以劃分成更細的邏輯存儲單元:
Oracle資料庫的存儲空間結構:
從邏輯的角度來看,一個資料庫(database)下麵可以分多個表空間(tablespace);一個表空間下麵有可以分多個段(segment);一個數據表要占一個段(segment),一個索引也要占一個段(segment)。一個段(segment)由多個區間(extent)組成,那麼一個區間又由一組連續的數據塊(data block)組成,這連續的數據塊是在邏輯上是連續的,有可能是物理邏輯上是分散
那麼從物理的角度上看,一個表空間由多個數據文件組成,數據文件是實實在在存在的磁碟文件,這些文件是由oracle資料庫操作系統的block組成的
Segment(段):段是指占用數據文件空間的通稱,或資料庫對象使用的空間的稽核;段可以由表段、索引段、回滾段、臨時段、和高速緩存段等。
Extent(區間):分配給對象的任何連續塊就叫區間;區間也叫擴展,因為當它用完已經分配的區間後,再有新的記錄插入就必須在分配新的區間(即擴展一些塊);一旦區間分配某個對象(表,索引或簇),則該區間就不能再分配給其它的對象
1,查看表空間的名稱及大小
select t.tablespace_name, round(sum(bytes / (1024 * 1024)), 0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name
2、查看表空間物理文件的名稱及大小
select tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space from dba_data_files order by tablespace_name; select tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space from dba_temp_files order by tablespace_name;
3、查看表空間的使用情況
select sum(bytes) / (1024 * 1024) as free_space, tablespace_name
from dba_free_space
group by tablespace_name;
SELECT * from DBA_TEMP_FREE_SPACE;
SELECT UPPER(F.TABLESPACE_NAME) "表空間名", D.TOT_GROOTTE_MB "表空間大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2), '990.99') "使用比", F.TOTAL_BYTES "空閑空間(M)", F.MAX_BYTES "最大塊(M)" FROM (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES, ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F, (SELECT DD.TABLESPACE_NAME, ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 4 DESC;
4、查看/修改Database的Default Temporary Tablespace
SELECT PROPERTY_NAME, PROPERTY_VALUE
FROM DATABASE_PROPERTIES
WHERE
PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;
5,--查看表空間是否具有自動擴展的能力
SELECT T.TABLESPACE_NAME, D.FILE_NAME D.AUTOEXTENSIBLE, D.BYTES, D.MAXBYTES, D.STATUS FROM DBA_TABLESPACES T, DBA_DATA_FILES D WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME, FILE_NAME;
當資料庫剛建立起來,系統會建立一個叫做SYSTEM的系統的TableSpace,存放SYS,SYSTEM等User重要的系統數據(ex:數據字典與預存儲程式等)建立oracle User時,不指定預設的TableSpace,則此User則會以System TableSpace 作為預設的TableSpace,這造成管理上的混亂與嚴重的效能問題,這是必須註意的
TableSpace的類型:Permanent、Undo、Temporary
Permanent TableSpace:創建給AP使用的都是。裡面的對象的生命周期不會隨著交易或者用戶的session結束而消失
Undo TableSpace:是兄用的特殊的tablespace,用來取代過去的rollback segement的機制,主要的功能是提供用戶修改數據未commit之前的read consistency的功能以及rollback交易的功能。也因為undo tablespace主要是取代過去的rollback segement的機制,所以不能存放其他種類的segement。只能是local managed。
創建undo 類型的表空間:
create undo tablespace undo1 datafile '/oracle/product/oradata/ora10/paul01.dbf' size 20m;
Temporary Tablespace:
Temporary Tablespace也是系統用的特殊的Tablespace。當使用者需要做排序時,有時就會使用Temporary Tablespace,因此裡面的Segement的生命周期都很短,可能交易結束或者User的Session結束就會消失。每個系統都必須要有一個預設的Temporary Tablespace(Default Temporary Tablespace),The DEFAULT TEMPORARY TABLESPACE clause of the CREATE DATABASE statement creates a default temporary tablespace for the database. 如果沒有Default Temporary Tablespace,Create User的時候又忘了指定使用哪個Temporary Tablespace,會以SYSTEM tablespace來當作Temporary Tablespace
以下列出幾個Temporary Tablespace的特性:
1. Temporary Tablespace是NOLOGGING模式,因此若資料庫損毀,做Recovery不需要恢復Temporary Tablespace。
2. Temporary最好是使用Local managed Tablespace
3. 若使用local managed模式,UNIFORM. SIZE參數最好是Sort_Area_Size的參數,這樣效能比較好。
4. Uniform. size預設1024K,而Sort_area_size預設是512K
5. Temporary Tablespace不能使用local managed的AUTOALLOCATE參數。
創建臨時表空間:
create temporary tablespace temp datafile '/oracle/product/oradata/ora10/paul01.dbf' size 20m
extent management local uniform size 4m;
TableSpace的Extent空間管理:Local Managed與Dictionary Managed
Local Managed與Dictionary Managed最主要的分別,在於空間管理方式的不同。Local managed的管理方式是讓每個TableSpace自己利用bitmaps去管理他自己的空間,而Dictionary Managed則是利用SYSTEM TableSpace的數據字典來做空間管理。這兩者最大的不同在於Local managed大大的改善了Oracle做空間管理(例如:產生新的Exten或釋放Extent...等)時,搶奪SYSTEM TableSpace資源的問題。所以Oracle從8i以後已經朝Local managed的方向去走了,所以我們應該儘量使用Local managed的方式才對
Local managed tablespace:
1. Local managed使用bitmaps做空間管理。
2. bitmaps中每個bit代表一個data block或者一堆相鄰的data block(extent)
3. 從10g開始,SYSTEM Tablespace預設使用local managed-->Oracle建議使用local managed的證據。
4. 假如SYSTEM TableSpace是local managed,那麼其他TableSpace必須是local managed。
5. 若沒指定使用local managed或者dictionary managed,則預設使用local managed。
6. 使用local managed可以增進效能,因為減少了SYSTEM TableSpace的效能競爭。
7. 使用local managed則不需要做空間縫合(loalescing),因為相鄰的不同大小的extent,辨識extent使用狀態的bits也在一起,Oracle可以直接使用這些相鄰的extent。不需要先進行縫合才可以使用。這也可以增進部份效能。
local managed的extent空間管理(Extent Management):AUTOALLOCATE與UNIFORM
AUTOALLOCATE與UNIFORM這兩個參數,是用來設定Local managed的extent大小的參數。AUTOALLOCATE是讓Oracle自己來決定extent的大小;而UNIFORM則是強制規定TableSpace中extent的為固定的大小。通常若明確的知道extent必須多大,才會使用UNIFORM,使用UNIFORM的好處是每個extent的大小都相同,不會產生空間破碎的問題。但是如果無法預知extent必須多大,使用AUTOALLOCATE會比較好,讓Oracle自己決定使用extent的大小,可以比較符合實際的需求,因此會比較節省空間,但是這可能會產生部分空間破碎的問題。使用AUTOEXTENT,Oracle會使用的extent大小為64k、1M、8M、64M。根據系統上使用的結果,99.95%的extent都是使用64k、只有少部分使用1M的extent,所以其實破碎的情況不嚴重,使用AUTOALLOCATE在系統上其實就夠用了。想知道你的TableSpace所使用的Extent有幾種,
請用下列的語法:
Select bytes,count(*) from dba_extents where tablespace_name='your_tablespace_name' group by bytes; Select tablespace_name,bytes, count(*) from dba_extents group by bytes,tablespace_name;
Local managed中的Segment的空間管理(Segment Space Management ):AUTO與MANUAL
Tablespace中的Segment的空間管理上,可以設置的參數為AUTO與MANUAL。MANUAL是使用我們熟悉的PCTUSED、FREELISTS、FREELIST GROUPS的方式來管理Segment中的data block;而AUTO則是使用bitmaps來管理data block。使用AUTO來管理的話,以往create tablespace或create table時設定的storage的參數設定都不需要再設定了,因為data block的管理已經是bitmaps了,不再是free list了。如果沒有特別的需求話,使用AUTO會比使用MANUAL有更好的空間利用率,與效能上的提升。
1、創建表空間
創建表空間的完整命令:
Create [undo] tablespace <ts_name> datafile <file_spec1> [,<file_spec2>] mininum extent <m> k|m blocksize <n> [k] logging clause force logging default storage_clause online | offline permanent | temporary extent_manager_clause segment_manager_clause 1)、undo指定系統將創建一個回滾表空間 2)、tablespace指定表空間名稱 3)、datafile指定數據文件的路徑、名稱、大小及自增長狀況:具體形如
'E:\oracle\product\10.2.0\oradata\orcl\TEST.DBF' size 50M autoextend on next 10M maxsize 500M,
也可以指定on為off,就沒有後面的遞增和最大尺寸了,也可以在maxsize後面指定最大尺寸unlimited說明表空間無限大。 4)、mininum extent <m> k|m指出在表空間的extent的最小值,這個參數可以減少空間碎片,保證在表空間的extent是這個數值的整數倍; 5)、blocksize <n> [k]設置塊的大小,如果要設置這個參數,必須設置成db_block_size的整數倍; 6)、logging cluse指示這個表空間上所有用戶對象的日誌屬性,預設是logging; 7)、force logging指示表空間進入強制日誌模式。此時系統將記錄表空間上對象的所有改變,除了臨時段的改變。這個參數高於logging參數中的nologging選項; 8)、default storage_clause聲明預設的存儲子句; 9)、online|offline指定表空間狀態; 10)、permanent | temporary指出表空間的屬性,是永久表空間還是臨時表空間。永久表空間存放的是永久對象,
臨時表空間存放的是session生命期中存在的臨時對象。這個參數生成的臨時表空間創建後一直都是字典管理,不能使用extent management local選項。
如果要創建本地管理表空間,必須使用create temporary tablespace。聲明瞭這個參數就不能聲明block size。 11)、extent_manager_clause說明表空間如何管理extent。一旦聲明瞭這個子句,就只能通過移植的方式改變這些參數。
如果希望表空間本地管理的話,聲明local選項。本地管理表空間是通過點陣圖管理的。Autoallocate說明表空間自動分配extent,用戶不能指定extent的大小。
只有9.0以上的版本具有這個功能。Uniform說明表空間的範圍的固定大小,預設是1M。不能將本地管理的資料庫的SYSTEM表空間設置成字典管理。
ORACLE推薦使用本地管理表空間。如果沒有設置這個子句,oracle會進行預設設置。如果初始化參數compatible小於9.0.0,那麼系統創建字典管理表空間,如果大於9.0.0,那麼按如下設置: 如果沒有指定default storage_clause,oracle創建一個自動分配的本地管理表空間;否則如果指定了mininum extent,
那麼oracle判斷mininum extent、initial、next是否相等,以及pctincrease是否為0,
如果滿足這2個條件,oracle吃醋昂就一個本地管理表空間,extent size是initial,
如果不滿足,那麼oracle將創建一個自動分配的本地管理表空間;
如果沒有指定mininum extent,那麼oracle判斷initial和next是否相等,以及pctincrease是否為0,
如果滿足這2個條件,那麼oracle創建一個本地管理表空間並制定uniform,否則oracle將創建一個自動分配的本地管理表空間。
(本地管理表空間只能存儲永久對象。如果你聲明瞭local,則不能聲明default storage_clause,mininum extent,temporary); 12)、segment_management_clause : segment space management auto。
2、表空間的狀態:
Tablespace的狀態有3種:ONLINE、OFFLINE、READ ONLY。
ONLINE是正常工作的狀態,OFFLINE狀態下,是不允許訪問數據的,
SYSTEM tablespace和DEFAULT temp tablespace是不能被OFFLINE的,且帶有active undo segments的tablespace也不能被OFFLINE。
切換ONLINE和OFFLINE狀態的命令是alter tablespace <ts_name> offline/online。當狀態變成READ-ONLY時,會產生一個checkpoint,此時數據只能讀不能寫,但是可以drop對象,相關命令是alter tablespace <ts_name> read only和alter tablespace <ts_name> read write。
3、表空間的存儲設置
修改tablespace和datafiles的存儲設置。這項工作是指修改tablespace的大小和datafile的存放位置。
在修改tablespace的大小之前,我們需要先知道tablespac的當前存儲情況。可以用下麵的SQL語句實現:
SELECT a.tablespace_name, a.bytes bytes_used, b.largest, round(((a.bytes - b.bytes) / a.bytes) * 100, 2) percent_used FROM (SELECT tablespace_name, SUM(bytes) bytes FROM Dba_Data_Files GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) bytes, MAX(bytes) largest FROM dba_free_space GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC;
上面這條SQL語句中,有2條子查詢,第一條取得的是表空間的總位元組數,第二條取得的是表空間中餘下的位元組數,最終得到的結果是已經使用的位元組數和百分比。
修改tablespace的大小,主要是通過datafile的大小來實現的,修改datafile的大小又有3種方法:
1)、使數據文件自增長;
2)、改變數據文件大小;
3)、添加數據文件。
使數據文件自增長:表DBA_DATA_FILES中有一個欄位AUTOEXTENSIBLE與這個方法對應,它指示數據文件是否自增長,也就是數據文件不能滿足存儲需求時,是否自動增加大小來滿足需求。先運行下列命令創建一個datafile大小為5M的表空間—TEST:create tablespace test datafile 'E:\oracle\product\10.2.0\oradata\orcl\TEST.DBF' size 5M;這個時候,AUTOEXTENSIBLE是no,也就是數據文件的大小是固定的,不會自增長(當然,我們也可以在創建命令中加入指令設置自增長)。下麵我們手動來修改數據文件為自增長:alter database datafile 'E:\oracle\product\10.2.0\oradata\orcl\TEST.DBF' autoextend on next 5M maxsize 50M;這條命令將TEST.DBF數據文件設置為按5M大小進行自增長,最大為50M。(臨時表空間用alter database tempfile...,下同)
改變數據文件大小:以前面的數據文件為例,我想將數據文件設置為100M大小,可以執行命令:
alter database datafile 'E:\oracle\product\10.2.0\oradata\orcl\TEST.DBF' resize 100M;
添加數據文件:這應該是最好的一種方式,便於管理。以TEST表空間為例,添加數據文件的命令如下:
alter tablespace test add datafile 'E:\oracle\product\10.2.0\oradata\orcl\TEST01.DBF' size 5M
autoextend on next 5M maxsize 50M;
這條命令就直接指定了數據文件自增長。
除了修改表空間的大小,存儲設置中還可以進行的一項工作就是移動數據文件。
移動數據文件有2種方法,一種是使用alter tablespace命令,一種是使用alter database命令。
使用alter tablespace移動數據文件前,需要先將表空間OFFLINE,然後目標數據文件必須存在(也就是將需要移動的數據文件複製到目的地)。以將數據文件TEST01.DBF移動到上一層目錄為例。先執行命令:alter tablespace test offline;然後將TEST01.DBF複製到上一級目錄,再執行命令:
alter tablespace test rename datafile E:\oracle\product\10.2.0\oradata\orcl\TEST01.DBF' to 'E:\oracle\product\10.2.0\oradata\TEST01.DBF';
然後再將表空間ONLINE就可以了:alter tablespace test online;。
使用alter database移動數據文件時,同樣,目標數據文件必須存在(原文件的副本),且資料庫需要處於MOUNTED狀態。
第一種方法,已經將數據文件移動到了父一級目錄,下麵再將它移回來。先關閉資料庫: shutdown immediate; 然後啟動資料庫, 啟動選項為mount:startup mount; 然後執行移動命令: alter database rename file 'E:\oracle\product\10.2.0\oradata\TEST01.DBF' to 'E:\oracle\product\10.2.0\oradata\orcl\TEST01.DBF'; 再打開資料庫:alter database open
報錯了:
ORA-01113:文件7需要介質恢復
ORA-01110:數據文件7:’E:ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST01.DBF’,細節還不明白,只知道資料庫認為這個數據文件收到破壞,需要使用備份、日誌信息來恢復。這本來是個比較嚴重的問題,但是在這個實例中,還是很好解決的,執行命令:
recover datafile ’E:ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST01.DBF’。提示完成介質恢復,再打開資料庫:alter database open;一切就正常了。
4、刪除表空間
刪除表空間,使用命令drop tablespace <ts_name>。但是有3個選項需要註意:
INCLUDING CONTENTS:指示刪除表空間中的segments;
INCLUDING CONTENTS AND DATAFILES:指示刪除segments和datafiles;
CASCADE CONSTRAINTS:刪除所有與該空間相關的完整性約束條件。
Drop tablespace test INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
需要註意的是SYSTEM表空間以及具有active segments的表空間是無法刪除的。
a)TableSpace管理準則
1、使用多個TableSpace
* 用戶數據與數據字典數據分離,減少競爭
* 應用程式之間的數據分離,防止某個TableSpace離線後對多個程式造成影響
* 不同磁碟驅動器上存儲數據,減少I/O競爭
* 回滾段數據與用戶數據分離,防止單磁碟故障造成數據永久丟失
* 可以控制單個TableSpace離線,提供更高的整體可用性
* 為特定類型資料庫使用保留TableSpace,可優化TableSpace的使用
* 可以備份單獨的TableSpace
2、指定表空間預設的存儲參數
為TableSpace設置合適的參數,下文中詳細介紹。
3、為用戶指定表空間限額
可以有效控制TableSpace的大小,限制用戶許可權防止發生意外。
b)創建TableSpace
1、創建本地管理TableSpace
Oracle創建的TableSpace預設均是本地管理的,明確的表述應該是:
在CREATE TABLESPACE 語句中EXTENT MANAGEMENT 子句中指定LOCAL。然後可以用AUTOALLOCATE 選項(預設)來使Oracle自動管理盤區
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
也可以使用一個指定大小(UNIFORM SIZE)的同意盤區來管理該TableSpace
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
如果未指定盤區大小,則預設為1M,說明數據文件至少要大於1MB
註:如果TableSpace被期望用於包含需要不同盤區大小和擁有很多盤區的大小變動的對象,那選擇AUTOALLOCATE是最好的選擇。AUTOALLOCATE是一種管理TableSpace的簡便方法,只是有可能會對一些空間造成浪費。如果需要準確控制未用空間,並能夠精確預計為一個或多個對象要非配的空間和盤區大小,那就可以使用UNIFORM。
2、在本地管理TableSpace中指定段空間管理
可使用SEGMENT SPACE MANAGEMENT子句來設置端控制項的管理模式,有以下幾種模式:
MANUAL(預設):使用段中管理空閑空間的空閑列表。
AUTO:使用點陣圖來管理段中的空閑空間。又稱為自動段空間管理。
AUTO立功了一種更加簡單、有效的管理方法,完全消除了為表空間中創建的段指定和調整PCTUSED、FREELISTS、FREELISTS GROUPS屬性的任何必要。
CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
註:LOB類型不能指定自動段空間管理。
3、修改本地管理TableSpace
* 不能講本地管理TableSpace改為本地管理的temp TableSpace
* 不能改變TableSpace的段空間管理辦法
* 本地管理TableSpace沒有必要合併空閑盤區
* 可以添加數據文件
* 可以改變TableSpace狀態(ONLINE/OFFLINE)
* 修改TableSpace為只讀or只寫
* rename數據文件
* 啟用/禁用該TableSpace數據文件的自動盤區大小
4、創建字典管理的TableSpace
CREATE TABLESPACE tbsb DATAFILE '/u02/oracle/data/tbsb01.dbf' SIZE 50M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE ( INITIAL 50K NEXT 50K MINEXTENTS 2 MAXEXTENTS 50 PCTINCREASE 0);
使用ALTER TABLESPACE語句可以進行以下操作:
* 添加一個新的文件
* 改變預設的存儲參數
* 合併TableSpace的空閑空間
* 可以改變TableSpace狀態(ONLINE/OFFLINE)
* 修改TableSpace為只讀or只寫
* rename數據文件
* 啟用/禁用該TableSpace數據文件的自動盤區大小
5、臨時表空間
臨時表空間主要用於提高多個排序操作的併發能力、減小開銷,或避免Oracle空間管理操作在一起進行。臨時表空間創建之後,可以被多個用戶共用。
一個給定實例和表空間的所有排序操作共用一個單一的排序段。即排序段為一個給定表空間的每個執行排序操作的實例而存在。
排序段由使用臨時表空間用於排序的第一個語句創建,併在關閉時釋放,一個盤區不能被多個事務共用。
可以使用V$SORT_SEGMENT視圖來查看臨時表空間排序段的空間分配和回收情況
用V$SORT_USAGE視圖查看這些段的當前排序用戶
註:臨時表空間中不能創建明確對象。
6、創建本地管理的臨時表空間
CREATE TEMPORARY TABLESPACE lmtemp TEMPFILE '/u02/oracle/data/lmtemp01.dbf' SIZE 20M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;
註1:臨時數據文件信息查詢與數據文件不同,需要查詢V$TEMPFILE和DBA_TEMP_FILES,但結構與V$DATAFILE和DBA_DATA_FILES類似。
註2:臨時表空間在初次使用時才分配空間,可以更快創建和修改大小,但要註意磁碟大小。
7、本地管理臨時表空間的修改
* 添加臨時文件 ALTER TABLESPACE lmtemp ADD TEMPFILE '/u02/oracle/data/lmtemp02.dbf' SIZE 20M REUSE; * 改變臨時文件狀態 ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' ONLINE|OFFLINE; * 更改臨時文件大小 ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' RESIZE 4M; * 取消臨時文件並刪除相應操作系統文件 ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP INCLUDING DATAFILES;
8、創建字典管理的臨時表空間
CREATE TABLESPACE sort DATAFILE '/u02/oracle/data/sort01.dbf' SIZE 50M DEFAULT STORAGE ( INITIAL 2M NEXT 2M MINEXTENTS 1 PCTINCREASE 0) EXTENT MANAGEMENT DICTIONARY TEMPORARY;
註1:不能以這種方式創建EXTENT MANAGEMENT LOCAL的臨時表空間。
註2:可以使用ALTER TABLESPACE tbsa TEMPORARY;語句將一個現有的字典管理永久表空間改為臨時表空間。
本文摘自:http://www.2cto.com/database/201110/109560.html