完整的Oracle資料庫通常由兩部分組成:Oracle資料庫執行個體和資料庫。
1)資料庫是一系列物理檔案的集合(資料檔案,控制檔案,聯機日誌,參數檔案等);
2)Oracle資料庫執行個體則是一組Oracle後台進程/線程以及在伺服器分配的共用記憶體區。
在啟動Oracle資料庫伺服器時,實際上是在伺服器的記憶體中建立一個Oracle執行個體(即在伺服器記憶體中分配共用記憶體並建立相關的後台記憶體),然後由這個Oracle資料庫執行個體來訪問和控制磁碟中的資料檔案。Oracle有一個很大的記憶體快,成為全域區(SGA)。
一、資料庫、資料表空間、資料檔案
1.資料庫
資料庫是資料集合。Oracle是一種資料庫管理系統,是一種關係型的資料庫管理系統。
通常情況了我們稱的“資料庫”,並不僅指物理的資料集合,他包含物理資料、資料庫管理系統。也即物理資料、記憶體、作業系統進程的組合體。
資料庫的資料存放區在表中。資料的關係由列來定義,即通常我們講的欄位,每個列都有一個列名。資料以行(我們通常稱為記錄)的方式儲存在表中。表之間可以相互關聯。以上就是關聯式模式資料庫的一個最簡單的描述。
當然,Oracle也是提供對面象對象型的結構資料庫的最強大支援,對象既可以與其它對象建立關係,也可以包含其它對象。關於OO型資料庫,以後利用專門的篇幅來討論。一般情況下我們的討論都基於關聯式模式。
2.資料表空間、檔案
無論關係結構還是OO結構,Oracle資料庫都將其資料存放區在檔案中。資料庫結構提供對資料檔案的邏輯映射,允許不同類型的資料分開儲存。這些邏輯劃分稱作資料表空間。
資料表空間(tablespace)是資料庫的邏輯劃分,每個資料庫至少有一個資料表空間(稱作SYSTEM資料表空間)。為了便於管理和提高運行效率,可以使用一些附加資料表空間來劃分使用者和應用程式。例如:USER資料表空間供一般使用者使用,RBS資料表空間供復原段使用。一個資料表空間只能屬於一個資料庫。
每個資料表空間由同一磁碟上的一個或多個檔案組成,這些檔案叫資料檔案(datafile)。一個資料檔案只能屬於一個資料表空間。在Oracle7.2以後,資料檔案建立可以改變大小。建立新的資料表空間需要建立新的資料檔案。資料檔案一旦加入到資料表空間中,就不能從這個資料表空間中移走,也不能與其它資料表空間發生聯絡。
如果資料庫儲存在多個資料表空間中,可以將它們各自的資料檔案存放在不同磁碟上來對其進行物理分割。在規劃和協調資料庫I/O請求的方法中,上述的資料分割是一種很重要的方法。
3.Oracle資料庫的儲存結構分為邏輯儲存結構和實體儲存體結構:
1)邏輯儲存結構:用於描述Oracle內部組織和管理資料的方式;
2)實體儲存體結構:用於描述Oracle外部即作業系統中組織和管理資料的方式。
二、Oracle資料庫執行個體
為了訪問資料庫中的資料,Oracle使用一組所有使用者共用的後台進程。此外,還有一些儲存結構(統稱為System Gloabl Area,即SGA),用來儲存最近從資料庫查詢的資料。資料區塊緩衝區和SQL共用池(Shared SQL Pool)是SGA的最大部分,一般占SGA記憶體的95%以上。通過減少對資料檔案的I/O次數,這些儲存地區可以改善資料庫的效能。
Oracle資料庫執行個體(instance)也稱作伺服器(server),是用來訪問資料庫檔案集的儲存結構及後台進程的集合。一個資料庫可以被多個執行個體訪問(這是Oracle並行伺服器選項)。
決定執行個體大小及組成的參數儲存在init.ora檔案中(在9i中是spfile)。Oracle資料庫執行個體啟動時需要讀這個檔案,並且在運行時可以由資料庫管理員修改。對該檔案的任何修改都只有在下一次啟動時才啟作用。執行個體的init.ora檔案件通常包含執行個體的名字:如果一個執行個體名為orcl, 那麼init.ora檔案通常被命名為initorcl.ora。另一個設定檔config.ora用來存放在資料庫建立後就不再改變的變數值(如資料庫的塊大小)。執行個體的config.ora檔案通常也包含該執行個體的名字:如果執行個體的名字為orcl,則config.ora一般將被命名為 configorcl.ora。為了便於使用config.ora檔案的設定值,在執行個體的init.ora檔案中,該檔案必須通過IFILE參數作為包含檔案列出。
原文出自【位元網】,轉載請保留原文連結:http://soft.chinabyte.com/database/220/11669720.shtml