每一個(gè)運(yùn)行的ORACLE數(shù)據(jù)庫與一個(gè)ORACLE實(shí)例(INSTANCE)相聯(lián)系。
一個(gè)ORACLE實(shí)例為存取和控制一數(shù)據(jù)庫的軟件機(jī)制。每一次在數(shù)據(jù)庫服務(wù)器上啟動(dòng)一數(shù)據(jù)庫時(shí),稱為系統(tǒng)全局區(qū)(SYSTEM
GLOBAL AREA)的一內(nèi)存區(qū)(簡(jiǎn)稱SGA)被分配,有一個(gè)或多個(gè)ORACLE進(jìn)程被啟動(dòng)。該SGA 和
ORACLE進(jìn)程的結(jié)合稱為一個(gè)ORACLE數(shù)據(jù)庫實(shí)例。一個(gè)實(shí)例的SGA和進(jìn)程為管理數(shù)據(jù)庫數(shù)據(jù)、為該數(shù)據(jù)庫一個(gè)或多個(gè)用戶服務(wù)而工作。
ORACLE在內(nèi)存存儲(chǔ)下列信息:
l 執(zhí)行的程序代碼。
l 連接的會(huì)話信息
l 程序執(zhí)行期間所需數(shù)據(jù)和共享的信息
l 存儲(chǔ)在外存儲(chǔ)上的緩沖信息。
ORACLE具有下列基本的內(nèi)存結(jié)構(gòu):
l 軟件代碼區(qū)
l 系統(tǒng)全局區(qū),包括數(shù)據(jù)庫緩沖存儲(chǔ)區(qū)、日志緩沖區(qū)和共享池.
l 程序全局區(qū),包括棧區(qū)和數(shù)據(jù)區(qū).
l 排序區(qū)
軟件代碼區(qū)
用于存儲(chǔ)正在執(zhí)行的或可以執(zhí)行的程序代碼。
軟件區(qū)是只讀,可安裝成共享或非共享。ORACLE系統(tǒng)程序是可共享的,以致多個(gè)ORACLE用戶可存取它,而不需要在內(nèi)存有多個(gè)副本。用戶程序可以共享也可以不共享。
系統(tǒng)全局區(qū)
為一組由ORACLE分配的共享的內(nèi)存結(jié)構(gòu),可包含一個(gè)數(shù)據(jù)庫實(shí)例的數(shù)據(jù)或控制信息。如果多個(gè)用戶同時(shí)連接到同一實(shí)例時(shí),在實(shí)例的SGA中數(shù)據(jù)可為多個(gè)用戶所共享,所以又稱為共享全局區(qū)。當(dāng)實(shí)例起動(dòng)時(shí),SGA的存儲(chǔ)自動(dòng)地被分配;當(dāng)實(shí)例關(guān)閉時(shí),該存儲(chǔ)被回收。所有連接到多進(jìn)程數(shù)據(jù)庫實(shí)例的全部用戶可自動(dòng)地被分配;當(dāng)實(shí)例關(guān)閉時(shí),該存儲(chǔ)被回收。所有連接到多進(jìn)程數(shù)據(jù)庫實(shí)例的全部用戶可使用其SGA中的信息,但僅僅有幾個(gè)進(jìn)程可寫入信息。在SGA中存儲(chǔ)信息將內(nèi)存劃分成幾個(gè)區(qū):數(shù)據(jù)庫緩沖存儲(chǔ)區(qū)、日志緩沖區(qū)、共享池、請(qǐng)求和響應(yīng)隊(duì)列、數(shù)據(jù)字典存儲(chǔ)區(qū)和其它各種信息。
程序全局區(qū)
PGA是一個(gè)內(nèi)存區(qū),包含單個(gè)進(jìn)程的數(shù)據(jù)和控制信息,所以又稱為進(jìn)程全局區(qū)(PROCESS GLOBAL AREA)。
排序區(qū)
方案也叫模式,一個(gè)模式(schema)為模式對(duì)象(scehma object)的一個(gè)集合,每一個(gè)數(shù)據(jù)庫用戶對(duì)應(yīng)一個(gè)模式。模式對(duì)象為直接引用數(shù)據(jù)庫數(shù)據(jù)的邏輯結(jié)構(gòu),模式對(duì)象包含如表、視圖、索引、聚集、序列、同義詞、數(shù)據(jù)庫鏈、過程和包等結(jié)構(gòu)。模式對(duì)象是邏輯數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)。一個(gè)模式對(duì)象邏輯地存儲(chǔ)在數(shù)據(jù)庫的一個(gè)表空間中,每一個(gè)對(duì)象的數(shù)據(jù)物理地包含在表空間的一個(gè)或多個(gè)數(shù)據(jù)文件中。
建議:
服務(wù)器可用內(nèi)存較小,采用多方案。多個(gè)SCHEMA(方案、模式)
服務(wù)器可用內(nèi)存充足,采用多實(shí)例。多個(gè)INSTANCE(實(shí)例)