oracle 增大表空間 oracle自動擴(kuò)展原理?
oracle自動擴(kuò)展原理?原則隨著記錄的增加,高水位線不斷右移,刪除記錄不會導(dǎo)致高水位線后移(左)。雖然刪除記錄后的空閑空間(高水位線左側(cè))可以使用,但其稀疏性導(dǎo)致了空閑空間??梢允褂胊lter ta
oracle自動擴(kuò)展原理?
原則
隨著記錄的增加,高水位線不斷右移,刪除記錄不會導(dǎo)致高水位線后移(左)。
雖然刪除記錄后的空閑空間(高水位線左側(cè))可以使用,但其稀疏性導(dǎo)致了空閑空間。
可以使用alter table table _ name shrinkspace來收縮oracle中的表,使用shrinkspac:。
1.必須為表啟用行移動。
2.表段所在表空間的段空間管理必須是auto。
oracle表空間大小有啥用?
SQL Server數(shù)據(jù)庫和Oracle數(shù)據(jù)庫最大的區(qū)別就是表空間設(shè)計。Oracle數(shù)據(jù)庫創(chuàng)造性地提出了表空間的設(shè)計概念,為Oracle數(shù)據(jù)庫的高性能做出了不可磨滅的貢獻(xiàn)??梢哉fOracle的很多優(yōu)化都是基于表空間的設(shè)計理念。
典型應(yīng)用1:控制用戶占用的表空間配額。
在一些大型數(shù)據(jù)庫應(yīng)用中,我們需要控制一個用戶或一組用戶占用的磁盤空間。這就像在文件服務(wù)器中為每個用戶設(shè)置一個磁盤配額,以防止硬盤空間不足。因此,在數(shù)據(jù)庫中,我們還需要限制用戶可以使用的磁盤空間量。為了實(shí)現(xiàn)這個目標(biāo),我們可以通過表空間來實(shí)現(xiàn)。
我們可以在Oracle數(shù)據(jù)庫中設(shè)置不同的表空間,為它們設(shè)置最大存儲容量,然后將用戶分配給這個表空間。在這種情況下,該用戶的存儲容量受到該表空間大小的限制。
典型應(yīng)用2:控制數(shù)據(jù)庫占用的磁盤空間。
有時,在一個Oracle數(shù)據(jù)庫服務(wù)器中,可能會運(yùn)行多個服務(wù)。除了數(shù)據(jù)庫服務(wù)器,可能還有應(yīng)用系統(tǒng)服務(wù)器,如郵件服務(wù)器。因此,需要先規(guī)劃好Oracle數(shù)據(jù)庫的磁盤空間,否則當(dāng)多個應(yīng)用服務(wù)占用的磁盤空間無限增加時,每個服務(wù)最終可能會因?yàn)橛脖P空間的耗盡而停止。因此,在同一臺服務(wù)器上使用多個應(yīng)用服務(wù)時,我們往往需要先為它們規(guī)劃和分配磁盤空間。任何服務(wù)都不能超過我們分配給他的最大額度,或者超過后及時提醒。只有這樣,才能避免因磁盤空間耗盡而導(dǎo)致的各種應(yīng)用服務(wù)的崩潰。
典型應(yīng)用3:靈活的表空間放置,提高數(shù)據(jù)庫的輸入輸出性能。
數(shù)據(jù)庫管理員還可以將不同類型的數(shù)據(jù)放入不同的表空間,這樣可以明顯提高數(shù)據(jù)庫的輸入輸出性能,有利于數(shù)據(jù)備份和恢復(fù)的管理。因?yàn)槲覀兊臄?shù)據(jù)庫管理備份或恢復(fù)數(shù)據(jù)時,圖書管理員可以根據(jù)表空間備份數(shù)據(jù)。比如在設(shè)計大型分銷系統(tǒng)后臺數(shù)據(jù)庫時,可以按省建立表空間。浙江省相關(guān)的數(shù)據(jù)文件放在浙江省的表空間,北京的業(yè)務(wù)記錄放在北京的表空間。這樣,當(dāng)浙江省的業(yè)務(wù)數(shù)據(jù)出現(xiàn)錯誤時,可以直接恢復(fù)浙江省的表空間。顯然,當(dāng)一個表空間中的數(shù)據(jù)有錯誤需要恢復(fù)時,這種設(shè)計可以避免對其他表空間的影響。
此外,表空間可以獨(dú)立備份。當(dāng)數(shù)據(jù)庫容量相對較大時,一次性備份整個數(shù)據(jù)庫顯然會花費(fèi)更多的時間。Oracle數(shù)據(jù)庫雖然支持熱備份,但是在備份期間,會占用更多的系統(tǒng)資源,導(dǎo)致數(shù)據(jù)庫性能下降。所以當(dāng)數(shù)據(jù)庫容量比較大的時候,我們需要設(shè)置多個表空間,然后規(guī)劃每個表空間的備份時間,這樣可以提高整個數(shù)據(jù)庫的備份效率,減少備份對數(shù)據(jù)庫正常運(yùn)行的影響。
典型應(yīng)用4:大型表格的排序操作。
我們都知道,當(dāng)表中記錄較多時,查詢起來會比較慢。第一次查詢成功后,第二次重新排序還是要花那么多時間。所以我們在設(shè)計數(shù)據(jù)庫的時候,往往會把這種大容量的表對象放在一個獨(dú)立的表空間里,以提高數(shù)據(jù)庫的性能。
典型應(yīng)用5:日志文件和數(shù)據(jù)文件分離,提高數(shù)據(jù)庫安全性。
默認(rèn)情況下,日志文件和數(shù)據(jù)文件存儲在同一個表空間中。但是,這對于數(shù)據(jù)庫安全性來說并不是很好。因此,在數(shù)據(jù)庫設(shè)計的過程中,我們往往喜歡將日志文件,尤其是重做日志文件放在一個獨(dú)立的表空間中,然后存儲在另一個硬盤上。這樣,當(dāng)存儲數(shù)據(jù)文件的硬盤出現(xiàn)故障時,可以通過存儲在另一個表空間的重做日志文件,立即修復(fù)數(shù)據(jù)庫,減少企業(yè)因數(shù)據(jù)丟失而造成的損失。
當(dāng)然,表空間的優(yōu)勢不僅限于這些。企業(yè)對數(shù)據(jù)庫的性能要求越高,或者數(shù)據(jù)庫容量越大,表空間的優(yōu)勢就越大。
下面,讓 讓我們具體看看Oracle數(shù)據(jù)庫中的表空間處理方法,看看它在性能和安全性方面是否有足夠的優(yōu)勢與SQL Server數(shù)據(jù)庫競爭。
在設(shè)計數(shù)據(jù)庫時,我們建議數(shù)據(jù)庫管理員按照以下順序設(shè)置表空間。
步驟1:創(chuàng)建一個表空間。
設(shè)計數(shù)據(jù)庫時,首先需要設(shè)計一個表空間。我們需要考慮是只建立一個表空間還是多個表空間,以及每個表空間的存儲位置、磁盤配額等等。
對于合理設(shè)計多少個表空間沒有統(tǒng)一的看法主要是根據(jù)企業(yè)的實(shí)際需求來判斷。如果企業(yè)需要控制用戶的磁盤配額,就需要根據(jù)用戶數(shù)量來設(shè)置表空間。當(dāng)企業(yè)的數(shù)據(jù)容量比較大,對數(shù)據(jù)庫的性能要求比較高時,需要根據(jù)不同類型的數(shù)據(jù)設(shè)置不同的表空間,以提高其輸入輸出性能。
步驟2:建立用戶并設(shè)置用戶 的默認(rèn)表空間。
在建立用戶時,我們建議數(shù)據(jù)庫管理員指定用戶 的默認(rèn)表空間。因?yàn)楫?dāng)我們使用CREATE語句創(chuàng)建數(shù)據(jù)庫對象時,比如數(shù)據(jù)庫表,它們默認(rèn)存儲在數(shù)據(jù)庫的當(dāng)前默認(rèn)空間中。如果用戶 的默認(rèn)表空間,則用戶必須在每次創(chuàng)建數(shù)據(jù)庫對象時指定表空間。顯然,這不是很合理。
還要注意,不同的表空間有不同的權(quán)限控制。用戶對表空間A有完全控制權(quán),但可能只有對表空間B的查詢權(quán),即使沒有連接權(quán)。因此,合理配置用戶對表空間的訪問權(quán)限也是提高數(shù)據(jù)庫安全性的一種方法。