標籤:content family 永久 height 組件 data pac resize including
資料表空間是什嗎?
Oracle資料庫包含邏輯結構和物理結構。
資料庫的物理結構是指構成資料庫的一組作業系統檔案。
資料庫的邏輯結構是指描述資料群組織方式的一組邏輯概念及它們之間的關係。
資料表空間是資料庫資料庫邏輯結構的一個重要組件。資料表空間可以存放各種應用對象,如表、索引。而每個資料表空間由一個或多個資料檔案組成。
資料表空間的分類
1.永久性資料表空間:
一般儲存表、視圖、過程和索引等的資料。SYSTEM、SYSAUX、USERS、TEMP資料表空間是預設安裝的。
2.臨時性資料表空間:
只用於儲存系統中短期活動的資料,如排序資料等。
3.撤銷資料表空間:
用來協助回退未提交的交易資料,已提交了的資料在這裡是不可以恢複的。一般不需要鍵臨時和撤銷資料表空間,除非把他們轉移到其
他磁碟中以提高效能。
資料表空間的作用
1.對不同使用者指派不同的資料表空間,對不同的模式對象分配不同的資料表空間,方便對使用者資料的操作,對模式對象的管理。
2.可以將不同資料檔案建立到不同的磁碟中,有利於管理磁碟空間,有利於提高I/O效能,有利於備份和恢複資料庫。
Oracle 系統自動建立的資料表空間
一般在完成Oracle系統的安裝並建立Oracle執行個體後,Oracle系統會自動建立多個資料表空間。
1.SYSTEM 資料表空間
SYSTEM資料表空間用於存放 Oracle系統內部表和資料字典的資料,如表名、列名、使用者名稱等。不建議將使用者建立的表、索引等對象存放到 SYSTEM資料表空間中。
2.SYSAUX資料表空間
SYSAUX資料表空間用於存放 Oracle系統內部的常用範例使用者的對象。SYSAUX資料表空間一般不儲存使用者的資料,由 Oracle系統內部自動維護。
3.撤銷資料表空間
撤銷資料表空間用於存放撤銷資訊的資料表空間。當我們對資料庫表的資料進行增加、刪除、修改時,Oracle系統自動使用撤銷資料表空間來臨時存放修改前的資料。當
所做的修改操作完成並提交後,Oracle系統可根據需要保留修改前資料時間長短來釋放撤銷資料表空間的部分空間。一般在建立 Oracle執行個體後,Oracle系統自動
建立一個名字為“UNDOTBS1”的撤銷資料表空間。
4.USERS 資料表空間
USERS資料表空間是 Oracle建議使用者使用的資料表空間,可以在這個資料表空間上建立各種對象,如建立表、索引等。Oracle的基本範例使用者 SCOTT的對象就存放在
USERS資料表空間中。
5.TEMP 資料表空間
TEMP資料表空間是 Oracle系統用於存放臨時資料的特殊資料表空間。例如,當操作中需要進行排序時,Oracle系統就將排序的資料臨時存放在該資料表空間內。排序處
理完成後即可釋放排序資料所佔用的空間,因此稱之為暫存資料表空間。
建立資料表空間
CREATE TABLESPACE tablespacename
DATAFILE
‘filename‘ [SIZE integer [K | M]] [,...]
[AUTOEXTEND [OFF | ON]];
解釋:
tablespacename是需建立的資料表空間名稱。
filename是資料檔案存放的路徑和名稱。
integer是你自己輸入的一個數字,指定檔案的大小,K是KB大小,M是MB大小。
...(省略符號)是指定組成資料表空間的另一個資料檔案。建立資料表空間時可指定多個資料檔案,每個資料檔案之間用,(逗號)分割。
AUTOEXTEND用來啟動或禁用資料檔案的自動擴充,ON是空間使用完畢會自動擴充,OFF是不自動擴充。設定為OFF可能會出現資料表空間剩餘容量
為0的情況,使資料不能儲存到資料庫中。
例:如下,建立一個名為tp_hr的資料表空間,有兩個資料檔案,自動擴充大小,初始大小是30M(兆)。
CREATE TABLESPACE tp_hr
DATAFILE
‘d:\data\tp_hr01.dbf‘ SIZE 30M,
‘d:\data\tp_hr02.dbf‘ SIZE 30M AUTOEXTEND ON;
查看錶空間
SELECT file_name,tablespace_name,bytes,autoextensible
FROM dba_data_files
WHERE tablespace_name=‘tp_hr‘; --根據資料表空間名稱查詢
調整資料表空間大小
方法一:更改資料檔案的大小
ALTER DATABASE DATAFILE
‘D:\DATA\tp_hr01.dbf‘ --指定檔案路徑
RESIZE 80M; --指定大小
方法二:向資料表空間內添加資料檔案
ALTER TABLESPACE tp_hr --指定資料表空間的名稱
ADD DATAFILE
‘E:\DATA\tp_hr02.DBF‘ SIZE 20M --指定檔案路徑和大小
AUTOEXTEND ON; --自動擴充
刪除資料表空間
方式1:
DROP TABLESPACE tp_hr; --刪除名為tp_hr的資料表空間,但是這個文法只是將資料表空間和資料庫的“聯絡”刪除了,不會刪除實際的資料檔案。
方式2:
DROP TABLESPACE tp_hr INCLUDING CONTENTS; --刪除名為tp_hr的資料表空間,並且把資料檔案也刪除掉。
(注意:刪除資料表空間之前最好對資料庫進行備份。)
Oracle中的資料表空間