Oracle用戶表空間兩步精通
Oracle數(shù)據(jù)庫(kù)經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解Oracle用戶表空間了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。SQL Server數(shù)據(jù)庫(kù)與Oracle數(shù)據(jù)庫(kù)之間最大的區(qū)別要屬表空間設(shè)計(jì)。Oracle數(shù)據(jù)庫(kù)開(kāi)創(chuàng)性地提出了表空間的設(shè)計(jì)理念,這為Oracle數(shù)據(jù)庫(kù)的高性能做出了不可磨滅的貢獻(xiàn)??梢赃@么說(shuō),Oracle中很多優(yōu)化都是基于表空間的設(shè)計(jì)理念而實(shí)現(xiàn)的。
控制Oracle用戶表空間配額。
在一些大型的數(shù)據(jù)庫(kù)應(yīng)用中,我們需要控制某個(gè)用戶或者某一組用戶其所占用的磁盤(pán)空間。這就好像在文件服務(wù)器中,需要為每個(gè)用戶設(shè)置磁盤(pán)配額一樣,以防止硬盤(pán)空間耗竭。所以,在數(shù)據(jù)庫(kù)中,我們也需要限制用戶所可以使用的磁盤(pán)空間大小。為了達(dá)到這個(gè)目的,我們就可以通過(guò)表空間來(lái)實(shí)現(xiàn)。
我們可以在Oracle數(shù)據(jù)庫(kù)中,建立不同的表空間,為其設(shè)置最大的存儲(chǔ)容量,然后把用戶歸屬于這個(gè)表空間。如此的話,這個(gè)用戶的存儲(chǔ)容量,就受到這個(gè)表空間大小的限制。當(dāng)然,表空間的優(yōu)勢(shì)還不僅僅這些,企業(yè)對(duì)于數(shù)據(jù)庫(kù)的性能要求越高,或者數(shù)據(jù)庫(kù)容量越大,則表空間的優(yōu)勢(shì)就會(huì)越大。
下面,我們就具體來(lái)看看Oracle數(shù)據(jù)庫(kù)中表空間的處理方式,看其在性能與安全性方面是否有足夠的優(yōu)勢(shì)與SQL Server數(shù)據(jù)庫(kù)抗衡。
在數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,我們建議數(shù)據(jù)庫(kù)管理員按如下順序設(shè)置表空間。
第一步:建立Oracle用戶表空間。
在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,首先需要設(shè)計(jì)表空間。我們需要考慮,是只建立一個(gè)表空間呢,還是需要建立多個(gè)表空間,以及各個(gè)表空間的存放位置、磁盤(pán)限額等等。
到底設(shè)計(jì)多少個(gè)表空間合理,沒(méi)有統(tǒng)一的說(shuō)法,這主要根據(jù)企業(yè)的實(shí)際需求去判斷。如企業(yè)需要對(duì)用戶進(jìn)行磁盤(pán)限額控制的,則就需要根據(jù)用戶的數(shù)量來(lái)設(shè)置表空間。當(dāng)企業(yè)的數(shù)據(jù)容量比較大,而其又對(duì)數(shù)據(jù)庫(kù)的性能有比較高的要求時(shí),就需要根據(jù)不同類(lèi)型的數(shù)據(jù),設(shè)置不同的表空間,以提高其輸入輸出性能。
第二步:建立Oracle用戶表空間,并制定用戶的默認(rèn)表空間。
在建立用戶的時(shí)候,我們建議數(shù)據(jù)庫(kù)管理員要指定用戶的默認(rèn)表空間。因?yàn)槲覀冊(cè)诶肅REATE語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,如數(shù)據(jù)庫(kù)表的時(shí)候,其默認(rèn)是存儲(chǔ)在數(shù)據(jù)庫(kù)的當(dāng)前默認(rèn)空間。若不指定用戶默認(rèn)表空間的話,則用戶每次創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的時(shí)候,都要指定表空間,顯然,這并不是很合理。
另外要注意,不同的表空間有不同的權(quán)限控制。用戶對(duì)于表空間A具有完全控制權(quán)限,可能對(duì)于表空間B就只有查詢權(quán)限,甚至連連接的權(quán)限的都沒(méi)有。所以,合理為用戶配置表空間的訪問(wèn)權(quán)限,也是提高數(shù)據(jù)庫(kù)安全性的一個(gè)方法。
【編輯推薦】